我想要从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实例的类。
任何想法如何做到这一点??
答案 0 :(得分:0)
您发布的JPanel
应添加到模式JDialog
内容窗格中。在同一个类中,您可以提供一些方法来返回用户在文本字段中输入的值。
在原始窗口中,打开对话框。
SomeDialog dialog = new SomeDialog(parent);
dialog.setVisible(true);
setVisible()
之后的代码仅在模式对话框关闭后执行。此时,您可以调用上面提到的方法来获取文本字段值。