【问题标题】:How to create a handler for window closing in Java Swing如何在 Java Swing 中创建用于关闭窗口的处理程序
【发布时间】:2012-11-23 02:41:44
【问题描述】:

当我的窗口(使用 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 window handler


【解决方案1】:

将框架设置为关闭时退出,windowClosed 将永远不会被调用,主要是因为系统在引发事件之前已经退出。

尝试改用windowClosing

或者,您可以使用shut down hook

【讨论】:

  • 谢谢,我将 setDefaultCloseOperation 更改为 DISPOSE_ON_CLOSE,现在可以正常工作了。
  • @Joel 如果这解决了您的问题,请考虑勾选帖子旁边的空复选标记。 +1 疯狂的好东西
  • 关机钩子链接坏了。
  • @AdamArold 这就是网络的本质——如果你有兴趣,你可以很容易地在谷歌上搜索“Java 关闭挂钩”
  • 我知道我可以。我刚刚注意到它已损坏,作为答案的作者,修复它是您的工作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-19
  • 1970-01-01
  • 2012-07-14
相关资源
最近更新 更多