如何在Java Swing中为窗口关闭创建处理程序

Joe*_*oel 6 java swing window handler

当我的窗口(使用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);
            }
        });
        ...
    }
}
Run Code Online (Sandbox Code Playgroud)

但是当我按下退出按钮时,从不调用函数"formLoginWindowClosed".我也尝试用java.awt.event.WindowAdapter作为参数创建监听器,但它也不起作用.我应该如何为窗口关闭创建监听器?提前致谢.

Mad*_*mer 7

将帧设置为关闭时退出,windowClosed永远不会被调用,主要是因为系统已经退出,然后才能引发事件.

请尝试使用windowClosing.

或者,您可以使用关闭钩子