在我的程序中,如果发生操作,它会打开一个窗口。当我在这个窗口中填写了信息,并输入一个按钮后,窗口dispose()。
该窗口是在主程序之外的程序中拾取的,但是当我关闭该窗口时,主程序停止。我怎样才能避免这种情况的发生?
谢谢你的帮助!
-
可以设置第二帧的
defalaultCloseOperation
属性为DO_NOTHING_ON_CLOSE
或DISPOSE_ON_CLOSE
-
甚至不要使用两帧。使用模态
JDialog
代替次要帧。更多信息请参见如何使用对话框。阅读更多关于情态。要阅读更多内容,请参见使用多个jframe,好/坏实践? -
忘掉第一条吧。
如果使用JFrame或扩展它,可以使用setDefaultCloseOperation()方法,如:
frame.setDefaultCloseOperation(HIDE_ON_CLOSE);
// or
frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
dispose
命令来自AWT Bundle,当您试图用AWT命令"关闭"一个swing窗口时,这可能会导致问题。
你可以用下面的命令关闭窗口:
windowName.setVisable(false);
windowName
是表示窗口的对象的名称。如果您正在扩展一个类,并且没有对象,则可以使用this
有关处置方法的更多信息:一般来说,java.awt. windows .dispose()用于GUI组件一个窗口的子类,以便于特定的GUI窗口对象(和它的子节点)来正确地释放和销毁本地UI资源(例如如屏幕)。垃圾收集(以及最终退出整个VM)可能会作为dispose()的结果发生,但不是直接发生与dispose()调用本身相连。"从:https://www.java.net/node/684412
windowName.setVisable(false);
似乎不是一个好的选择。如果用户想退出程序怎么办?
查看这个问题-如何在任务栏的系统托盘中隐藏JFrame