0

我想从 gui 实例中获得回报我运行来创建 GUI 的代码:

JFrame frame = new JFrame();
frame.getContentPane().add(new ChatPopup());
frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
frame.pack();
frame.setVisible(true);

我的 GUI(ChatPopUp 代码如下:

public class ChatPopup extends javax.swing.JPanel {
private JButton cancelButton;
private JTextField textFieldchatRoomName;
private JLabel jLabel1;
private JButton okButton;

public ChatPopup() {
    super();

    initGUI();
}

private void initGUI() {
    try {
        this.setPreferredSize(new java.awt.Dimension(294, 85));
        {
            jLabel1 = new JLabel();
            this.add(jLabel1);
            jLabel1.setText("Please enter the new chat room name:");
        }
        {
            textFieldchatRoomName = new JTextField();
            this.add(textFieldchatRoomName);
            textFieldchatRoomName.setPreferredSize(new java.awt.Dimension(263, 22));
        }
        {
            cancelButton = new JButton();
            this.add(cancelButton);
            cancelButton.setText("Cancel");
            cancelButton.setPreferredSize(new java.awt.Dimension(84, 22));
            cancelButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    System.out.println("Cancel PRESSED");
                }
            });
        }
        {
            okButton = new JButton();
            this.add(okButton);
            okButton.setText("Ok");
            okButton.setPreferredSize(new java.awt.Dimension(60, 22));
            okButton.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent evt) {
                    System.out.println("OK PRESSED");
                }
            });
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

}

这是一个非常简单的 GUI,它有一个文本字段和 2 个按钮,一个是“Ok”,一个是“Chancel”。当我单击“确定”时,我希望将 textField 值发送到最初运行 GUI 实例的类。

任何想法如何做到这一点?

4

1 回答 1

0

您发布的内容JPanel应添加到模式JDialog内容窗格中。在同一个类中,您可以提供一些方法来返回用户在文本字段中输入的值。

在原始窗口中,您打开对话框。

SomeDialog dialog = new SomeDialog(parent);
dialog.setVisible(true);

之后的代码setVisible()只会在模态对话框关闭后执行。此时您可以调用我上面提到的方法来获取文本字段值。

于 2012-11-08T15:56:52.600 回答