0

我正试图让面板以递归方式相互合作。

当我在主 GUI 上时,我有第一个带有按钮添加客户端的 JPanel,一旦单击它就会将我带到带有表单的 JPanel,然后我恢复这些值,并将它们发送到第一个 JPanel 中的 JTable 中图形用户界面。

然后当我尝试插入第二条记录时。我得到一个空白的 GUI。我不太确定我做错了什么。如何实现多次重复相同的动作?这是加载表格,输入信息,将其推送到表格上,然后该过程会根据我的需要重复。

这是主 GUI 中的添加客户端按钮声明

Button btn_AddClient = new Button("Add Client");
        btn_AddClient.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent arg0) {
                panel.setVisible(false);
                contentPane.setVisible(false);
                setContentPane(contentPaneClient);
            }
        });
        btn_AddClient.setBounds(259, 12, 70, 22);
        contentPane.add(btn_AddClient); 

这是第二个面板中表单的添加按钮

JButton btnAdd = new JButton("Add");
        btnAdd.addActionListener(new ActionListener() {

            public void actionPerformed(ActionEvent arg0) {


                setContentPane(contentPaneClient);
                panel.setVisible(true);
                contentPane.setVisible(true);
                contentPaneClient.setVisible(false);
                LigneJTab l = new LigneJTab(textFieldPrenomClient.getText(),textFieldNomClient.getText(), textFieldAdresseClient.getText(), chckbxHomme.isSelected(), Sport.FOOTBALL);
                myModel.addLine(l);
                setContentPane(contentPane);
            }
        });
        btnAdd.setBounds(263, 40, 117, 29);
        contentPaneClient.add(btnAdd);
4

2 回答 2

0
JButton btnAdd = new JButton("Add");
    btnAdd.addActionListener(new ActionListener() {

        public void actionPerformed(ActionEvent arg0) {

            //setContentPane(contentPaneClient);
            //panel.setVisible(true);
            //contentPane.setVisible(true);
            //contentPaneClient.setVisible(false);

            LigneJTab l = new LigneJTab(textFieldPrenomClient.getText(),textFieldNomClient.getText(), textFieldAdresseClient.getText(), chckbxHomme.isSelected(), Sport.FOOTBALL);
            myModel.addLine(l);

            panel.setVisible(true);
            contentPane.setVisible(true);
            setContentPane(contentPane);

        }
    });
    btnAdd.setBounds(263, 40, 117, 29);
    contentPaneClient.add(btnAdd);

评论了顶部并添加了setContentPane(contentPane);并且有效!

谢谢 !

于 2013-07-18T03:22:20.437 回答
0

另一个想法:您不需要换出内容窗格来请求数据。一种更优雅的方式是使用模式对话框。要制作一个,首先创建一个对话框类:

public class MyDialog extends JDialog {
    public MyDialog(Frame parent) {
        super(parent);
        setModalityType(Dialog.ModalityType.APPLICATION_MODAL);
        // add components to getContentPane()
        // to close dialog, use setVisible(false) in listeners
    }

    public OutputData getData() {
        OutputData data = new OutputData();
        show();
        // show only returns after a setVisible(false)
        data.field = textField.getText();
        // for example, repeat as many times as necessary
        return data;
    }
}

要从 调用此对话框JFrame,请使用以下代码:

MyDialog dialog = new MyDialog(this);
OutputData data = dialog.getData()
// now retrieve fields from data
于 2013-07-18T19:33:25.343 回答