我有一个JFrame,它在实例化时调用自定义JDialog(Login)。 如果登录成功,我希望jFrame可见。如果用户在该登录对话框中按下escape / cancel,则应关闭整个应用程序。
我怎么能这样做......
目前,如果我处置对话框,则jFrame可见。
答案 0 :(得分:5)
假设您可以通过JFrame
变量访问frame
,只需致电:
frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
这可能比调用System.exit()
更好,因为如果你已经注册了一个窗口关闭你的框架的监听器,它将使你能够运行一些清理代码。
答案 1 :(得分:3)
您可以覆盖对话框关闭事件:
dialog.setDefaultCloseOperation(JDialog.DO_NOTHING_ON_CLOSE);
dialog.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
//Release you source, close all your frames or call a brutal System.exit(0);
}
});