繁体   English   中英

两个JPanel之间的ActionListener匿名类

[英]ActionListener Anonymous class between two JPanel

我正在尝试使小组能够彼此密切合作。

在主GUI上时,我有第一个带有Button Add Client的JPanel,单击后将其带到带有表单的JPanel,然后调出这些值,并将它们发送到第一个JPanel中的JTable中GUI。

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

这是MAIN 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);
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); 那行得通!

谢谢 !

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM