在我的程序中,如果发生了某个操作,它会打开一个窗口。在我在此窗口中填写信息并输入按钮后,窗口dispose()。
在我的主程序之外的程序中拾取窗口,但是当我关闭此窗口时,我的主程序停止。我怎样才能防止这种情况发生?
感谢您的帮助!
答案 0 :(得分:3)
您可以将第二帧的defalaultCloseOperation
属性设置为DO_NOTHING_ON_CLOSE
或DISPOSE_ON_CLOSE
甚至不使用两个框架。使用模态JDialog
代替辅助框架。点击How to Use Dialogs了解更多信息。详细了解Modality。如需好好阅读,请参阅The Use of Multiple JFrames, Good/Bad Practice?
忘记编号1.然后直接进入2.
答案 1 :(得分:3)
如果使用JFrame或扩展它,您可以使用setDefaultCloseOperation()方法,如:
frame.setDefaultCloseOperation(HIDE_ON_CLOSE);
// or
frame.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
答案 2 :(得分:0)
dispose
命令来自AWT捆绑包,这可能会导致问题,因为您正在尝试关闭"带有AWT命令的挥杆窗口。
您可以使用以下命令关闭窗口:
windowName.setVisable(false);
windowName
是表示窗口的对象的名称。如果要扩展类,并且没有对象,则可以使用this
有关Dispose方法的更多信息: "通常,java.awt.Window.dispose()用于GUI组件 Window的子类,用于特定的GUI Window对象(和 它的孩子们)正确地释放和销毁本机UI资源(例如 作为屏幕)。垃圾收集(并最终退出 整个VM)可能由于dispose()而发生,但不是直接发生的 与dispose()调用本身连接。" 发件人:https://www.java.net/node/684412
答案 3 :(得分:0)
windowName.setVisable(false);
似乎不是一个好选择。如果用户想要退出程序该怎么办?