我正在使用JFrames,我有一个主JFrame,它需要第二个JFrame(例如jFrame2)。我需要jFrame2有9个按钮,每个按钮中都包含图像(在这里是完美的)。然后,在jFrame2中按下按钮时,关闭jFrame2并将字符串发送到jFrame1。 jFrame1必须等待末尾的jFrame2接收发送jFrame2的字符串,并且由于jFrame1使用该字符串向服务器发送JSON。
这是我的示例代码:
////// class jFrame1 //////
public class jFrame1 extends javax.swing.JFrame{
public JTextField JTextField1;
public JTextField JTextField2;
public JTextField JTextField3;
private JButton jButton1;
.....
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
jFrame2 regPack = new jFrame2();
regPack.setLocationRelativeTo(null);
regPack.setVisible(true);
//HERE I WANT THE PROGRAM RESPONSE TO WAIT CLOSE AND CONTINUE RUNNING JFrame
....
}
////// class jFrame2 //////
public class jFrame2 extends javax.swing.JFrame{
private JButton jButton1;
private JButton jButton2;
public jFrame2(){
}
.....
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
//HERE I WANT TO SEND A STRING ON JFRAME1 BEFORE CLOSING THIS JFRAME2
this.dispose();
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
//HERE I WANT TO SEND A STRING ON JFRAME1 BEFORE CLOSING THIS JFRAME2
this.dispose();
}
最佳答案
对其进行更改,以使frame2
具有frame1
可以检索所设置值的方法(获取器)。
对其进行更改,使frame2
为模态JDialog
。这将使您的代码停止在显示JDialog
的位置,但允许UI的其余部分保持响应。当对话框关闭时,代码(在frame1
中)将继续执行,您可以通过前面提到的getter从frame2
检索值。
请查看How to make dialogs了解更多详细信息...