如何在Java Swing中为窗口关闭创建处理程序
当我的窗口(使用Java Swing创建)关闭时,我正在尝试调用一个函数来进行清理。 在我的初始化代码中,我这样做:
public class FormLogin extends JFrame{ private void initComponents(){ ... setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); addWindowListener(new java.awt.event.WindowAdapter() { public void windowClosed(java.awt.event.WindowEvent evt){ formLoginWindowClosed(evt); } }); ... } }
但是当我按下退出按钮时,从不调用函数“formLoginWindowClosed”。 我也尝试用java.awt.event.WindowAdapter作为参数创建监听器,但它也不起作用。 我应该如何为窗口关闭创建监听器? 提前致谢。
将帧设置为关闭时退出,将永远不会调用windowClosed
,主要是因为系统在事件被引发之前已经退出。
请尝试使用windowClosing
。
或者,您可以使用关闭钩子
- Java中的JVM Shutdown Hook
- Shutdown Hooks API的设计
- Java Shutdown hook – Runtime.addShutdownHook()