我正在使用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了解更多详细信息...

09-30 14:59