我想讓我的Java應用程序在按下「關閉」十字按鈕時調用我自己定製的函數。據我所知,可能沒有辦法,因爲setDefaultCloseOperation
根本沒有重載。爲setDefaultCloseOperation創建自定義操作?
任何想法如何實現?
我想讓我的Java應用程序在按下「關閉」十字按鈕時調用我自己定製的函數。據我所知,可能沒有辦法,因爲setDefaultCloseOperation
根本沒有重載。爲setDefaultCloseOperation創建自定義操作?
任何想法如何實現?
也許這一個,但張貼霍華德說讀教程WindowListener之前,有
WindowListener exitListener = new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
int confirm = JOptionPane.showOptionDialog(
null, "Are You Sure to Close Application?",
"Exit Confirmation", JOptionPane.YES_NO_OPTION,
JOptionPane.QUESTION_MESSAGE, null, null, null);
if (confirm == 0) {
System.exit(0);
}
}
};
frame.addWindowListener(exitListener);
您可以將WindowListener
添加到您的相框(請參閱,例如here)。
您可以添加一個window listener的框架:
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) {
onExit();
}
});
...
public void onExit() {
System.err.println("Exit");
System.exit(0);
}
所有上述的一些/其他選項建議是正確的,因爲你需要使用WindowListener。
但是所有的答案也是不完整的,因爲它們忘了提,你可能還需要添加:
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.addWindowListener(...);
這將使你的代碼,以窗關閉過程窗口的完全控制會除非您告訴它(通常通過在框架上使用dispose()方法),否則不會自動關閉。這允許您提示用戶確認是否關閉窗口。
Closing an Application有一個簡單的API,允許您創建一個簡單的Action,當窗口關閉時執行。它爲您管理關閉操作和窗口監聽器代碼。