为 setDefaultCloseOperation 创建自定义操作?
2022-09-02 04:59:52
我想让我的Java应用程序在按下“关闭”十字按钮时调用我自己的自定义函数。据我所知,可能没有办法,因为根本没有过载。setDefaultCloseOperation
任何想法如何实现这一点?
我想让我的Java应用程序在按下“关闭”十字按钮时调用我自己的自定义函数。据我所知,可能没有办法,因为根本没有过载。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。
然而,所有的答案也不完整,因为它们忘记提到你可能还想添加:
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.addWindowListener(...);
这将允许您的代码完全控制窗口关闭过程,因为除非您告诉它(通常通过在框架上使用 dispose() 方法),否则窗口不会自动关闭。这允许您向用户发出确认以关闭或不关闭窗口。
关闭应用程序有一个简单的 API,允许您创建一个简单的操作,该操作在窗口关闭时执行。它为您管理关闭操作和窗口侦听器代码。