如何在关闭 JFrame 时调用函数?
How can I call a function at time of closing of JFrame?
因为我想在程序关闭前进行备份。
当用户单击(关闭该 JFrame 的右上角按钮)按钮关闭 JFrame 时,我如何调用备份功能?回来后我想成为框架得到处置系统退出。
我已经设置了默认关闭操作setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
只需执行以下操作即可:
- 将默认关闭操作设置为:
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
- 向您的框架添加一个新的
WindowAdapter
并覆盖(挂钩)其 windowClosing
方法,如下所示:
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent event) {
//your logic here
}
});
另外不要忘记,您需要手动处理框架并在完成后调用 System#exit
以关闭应用程序。
有关更多信息,请在此处查看相关文档:
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/event/WindowAdapter.html
因为我想在程序关闭前进行备份。
当用户单击(关闭该 JFrame 的右上角按钮)按钮关闭 JFrame 时,我如何调用备份功能?回来后我想成为框架得到处置系统退出。
我已经设置了默认关闭操作setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
只需执行以下操作即可:
- 将默认关闭操作设置为:
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
- 向您的框架添加一个新的
WindowAdapter
并覆盖(挂钩)其windowClosing
方法,如下所示:
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent event) {
//your logic here
}
});
另外不要忘记,您需要手动处理框架并在完成后调用 System#exit
以关闭应用程序。
有关更多信息,请在此处查看相关文档:
https://docs.oracle.com/en/java/javase/11/docs/api/java.desktop/java/awt/event/WindowAdapter.html