0

私はこの2つのJFrameクラスを持っています:

   public class Frame1 extends javax.swing.JFrame {
    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
      private JButton button1;
      button1 = new JButton("Open Frame2");
      private void button1ActionPerformed(java.awt.event.ActionEvent evt) {    
      this.setEnabled(false);  // disable Frame1 until Frame2 is showing              
      java.awt.EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                Frame2 obj2 = new Frame2 ();
                obj2.setVisible(true); 
            }
        });
      }
    }


 public class Frame2 extends javax.swing.JFrame {
  setDefaultCloseOperation(javax.swing.WindowConstants.HIDE_ON_CLOSE);
      public Frame2 () {
      this.setVisible(false);
      }
   Frame1 obj1 = new Frame1 ();
   private JButton button2;
      button2 = new JButton("Hide Frame2 and go to Frame1");
      private void button2ActionPerformed(java.awt.event.ActionEvent evt) {
           this.setVisible(false);
      }
    }

ご覧のとおり、クリックするbutton1 Frame1と無効になり、Frame2 obj2作成されます。

  1. まず第一に、私が行ったことが、ある親を無効化/焦点を外しJFrameて、別の親をフォーカスして上に表示する正しい方法であるかどうかを知りたいです。
  2. そして、 をFrame1隠した後に有効にする必要がありFrame2ますobj1.setEnabled(true)。どうやってやるの?
4

1 に答える 1