首页 > 解决方案 > 如何在关闭 JFrame 时调用函数?

问题描述

因为我想在程序关闭之前进行备份。
当用户单击(关闭该 JFrame 的右上角按钮)按钮关闭 JFrame 时,我如何调用备份功能?回来后我想成为框架得到处置系统退出。

我已设置默认关闭操作setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

标签: javaswingjframebackupdispose

解决方案


非常简单地执行以下操作:

  1. 将默认关闭操作设置为:

frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);

  1. 向您的框架添加一个新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


推荐阅读