我有一個實例化調用自定義JDialog(Login)的JFrame。 如果登錄成功,我希望該jFrame可見。如果用戶在該登錄對話框上按下escape/cancel,則應關閉整個應用程序。Swing-取消對話框時關閉整個應用程序
我怎麼可以這樣做......
目前,如果我處理對話框中的JFrame變得可見。
我有一個實例化調用自定義JDialog(Login)的JFrame。 如果登錄成功,我希望該jFrame可見。如果用戶在該登錄對話框上按下escape/cancel,則應關閉整個應用程序。Swing-取消對話框時關閉整個應用程序
我怎麼可以這樣做......
目前,如果我處理對話框中的JFrame變得可見。
假設你有通過frame
變量訪問您JFrame
,你可以簡單地調用:
frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
這可能是比調用一個System.exit()
,因爲它將使你能夠運行一些清理代碼,如果你已經註冊好一個關閉窗口的窗口。
+1有一個相關的例子[這裏](http://stackoverflow.com/a/8336218/230513)。 – trashgod
您可以覆蓋對話框關閉事件:
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);
}
});
還不如就叫'System.exit(-1);' – maksimov
你爲什麼不使應用程序,以顯示登錄只有第一個對話框,並如果它已成功登錄啓動JFrame? –