2014-09-13 97 views
0

我正在使用基于秋千的应用程序登录后我有一个菜单窗口包含不同的标签打开不同的窗口,但是当我关闭其中一个自动关闭所有的窗口。指导我如何解决它?谢谢。关闭一个jframe窗口时,其他窗口自动关闭为什么?

+0

你能显示一些代码吗? – BitNinja 2014-09-13 06:04:23

+0

是的等一下 – 2014-09-13 06:06:10

+0

我只使用dispose,因为net-bean拖放自动设置setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); – 2014-09-13 06:11:14

回答

1

您正在致电setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE),以便在关闭此窗口时您的整个应用程序将关闭。这是因为(如下所述)System.exit();将被调用。

根据应用程序的需要,您应该将其他值之一传递给setDefaultCloseOperation(int operation)

无论如何,如果您使用多个框架,请阅读The Use of Multiple JFrames, Good/Bad Practice?


来源setDefaultCloseOperation

公共无效setDefaultCloseOperation(INT操作)

设置当用户启动一个 “关闭” 这个框架上,将默认执行的操作。您必须指定以下 选项之一:

  • DO_NOTHING_ON_CLOSE(在WindowConstants中定义):不执行任何操作;要求程序处理注册WindowListener对象的 windowClosing方法中的操作。

  • HIDE_ON_CLOSE(在WindowConstants中定义):在调用任何注册的WindowListener对象后自动隐藏框架。

  • DISPOSE_ON_CLOSE(在WindowConstants中定义):自动隐藏和调用任何注册的WindowListener
    对象后处理该帧。

  • EXIT_ON_CLOSE(在JFrame中定义):使用System exit方法退出应用程序。仅在应用程序中使用它。

默认情况下,该值设置为HIDE_ON_CLOSE。 此属性值的更改导致属性更改事件的触发,其中 属性名称为“defaultCloseOperation”。

0

通常您应该使用HIDE_ON_CLOSE。如果你想再次打开框架,你可以这样做:

mainFrame mF = new mainFrame(); 
mF.setVisible(true); 

mainFrame是GUI类的名称。