我是Java的初学者,来自VB.net。
这是我尝试使用Netbeans进行的操作:

我创建了2个JFrame类:JFrame1和JFrame2。
第一个实例是从项目的主类实例化的。

JFrame1上有一个按钮。当我单击它时,将创建并显示JFrame2的新实例,并且已创建的JFrame1实例被隐藏。使用JFrame2上的另一个按钮,如何在不创建新实例的情况下使已创建的JFrame1再次可见。以下是我要实现的代码的摘录。

JFrame1:

public class JFrame1 {

 private void button1(java.awt.event.ActionEvent evt){
   JFrame2 jf2 = new JFrame2();
   jf2.setVisible(true);
   this.setVisible(false);
}
}


JFrame2:

public class JFrame2 {

 private void button2(java.awt.event.ActionEvent evt){
  this.setVisible(false);

  // here the line that would make Jframe1 visible without recreating an instance.
}
}


最后一件事。如何销毁JFrame2以释放内存空间?

最佳答案

只需将JFrame1对象的句柄传递给JFrame2

JFrame1:

public class JFrame1 {
 private void button1(java.awt.event.ActionEvent evt){
   JFrame2 jf2 = new JFrame2(this);
   jf2.setVisible(true);
   this.setVisible(false);
 }
}


JFrame2:

public class JFrame2 {
 private JFrame1 frame1;

 public JFrame2(JFrame1 frame1) {
  this.frame1 = frame1;
 }

 private void button2(java.awt.event.ActionEvent evt){
  this.setVisible(false);

  frame1.setVisible(true);
 }
}

09-25 20:40