我想让我的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,当窗口关闭时执行。它为您管理关闭操作和窗口监听器代码。