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

7

我正在尝试调用一个函数,在我的窗口(使用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作为参数创建侦听器,但它也没有起作用。 我应该如何创建窗口关闭的侦听器? 提前致谢。


可能是如何在Java Swing中捕获关闭事件的重复问题。 - Suma
1个回答

8

1
谢谢,我将setDefaultCloseOperation更改为DISPOSE_ON_CLOSE,现在已经正常工作了。 - Joel
@Joel 如果这解决了你的问题,请考虑在帖子旁边打勾。+1 很棒的东西。 - David Kroukamp
关闭钩子链接已损坏。 - Adam Arold
@AdamArold 这就是Web的本质 - 如果你感兴趣,你可以很容易地谷歌搜索“Java shutdown hook”。 - MadProgrammer
我知道我能做到。我只是注意到它出了问题,作为答案的作者,修复它是你的工作。 - Adam Arold
我很想知道为什么这个答案可能会被踩 - 它在哪些方面没有回答OP的问题? - 它可以如何改进?由于没有提供新的答案,我只能猜测你要么不理解问题,要么不理解答案。 - MadProgrammer

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接