2015-10-18 90 views
1

我有2个扩展Jframe的类。我想在点击按钮时调用第二个Jframe,并在点击关闭时返回。因此,在1日的JFrame我写了这个代码使用2个jframe swing Swing Jframe

public void actionPerformed(ActionEvent e) { 
    EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      try { 
        Lessons frameLessons = new Lessons(); 
        frameLessons.setVisible(true); 
       } catch (Exception e) { 
         e.printStackTrace(); 
       } 
      } 
     }); 
    } 

但是,当我尝试关闭第二JFrame中,第1也关闭

+2

参见[多个JFrames的使用,好/坏实践?](http://stackoverflow.com/q/9554636/418556) –

+0

*“我有2类扩展Jframe。”*这是IDE通常鼓励的东西(扩展GUI类而不是配置标准的实例)应该避免。话虽如此,如果决定继续使用GUI构建器,最好是扩展'JPanel'。这样,所有的面板都可以用在像框架这样的单个顶层容器中 - 如果这是合适的,或者在对话框或小程序中显示,或者...... *“当点击按钮时调用第二个Jframe,并在关闭时返回点击。“*这表明第二个容器应该是一个**模式'JDialog' ** .. –

+0

谢谢,我解决 –

回答

-1

试试这个:

Lessons frameLessons = new Lessons(); 
frameLessons.setDefaultCloseOperation(DISPOSE_ON_CLOSE); 
frameLessons.setVisible(true); 
+1

虽然这将解决规定的问题,它也支持*设计*(多个帧)应该改变。 –