在取消对话框时,关闭整个应用程序

时间:2012-06-19 09:20:24

标签: java swing jframe jdialog java-6

我有一个JFrame,它在实例化时调用自定义JDialog(Login)。 如果登录成功,我希望jFrame可见。如果用户在该登录对话框中按下escape / cancel,则应关闭整个应用程序。

我怎么能这样做......

目前,如果我处置对话框,则jFrame可见。

2 个答案:

答案 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);
  }
});