java - 为什么 Swing formWindowClosed 不能正常工作?

标签 java swing netbeans

我有一个 SWING 表单,当我关闭应用程序时,我想将数据保存到文本文件中。

这是我无法修改的 Swing 生成的代码:

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
    addWindowListener(new java.awt.event.WindowAdapter()
    {
        public void windowClosed(java.awt.event.WindowEvent evt)
        {
            formWindowClosed(evt);
        }
    });

这是我对 formWindowClosed 的自定义实现。问题是应用程序没有执行 formWindowClosed 就关闭了。

formWindowClosed 不是我想放置在应用程序关闭之前执行的代码的方法吗?

formWindoClosed 实现:

private void formWindowClosed(java.awt.event.WindowEvent evt)
{

    System.out.println("Message");
    brain.getBirou().getProbaRepo().WriteParticipantToTXT();
}

最佳答案

如果你想在进程退出之前执行代码,你必须将默认关闭操作设置为 WindowConstants.DISPOSE_ON_CLOSE 然后在监听器方法中保存你的文件然后调用 System.exit (0); 完成后。
此外,“Swing”本身不会生成代码。也许您应该自己动手编写 GUI 代码。那么你当然可以修改任何内容
您必须有可能更改窗口的退出行为,因此将其设置为关闭时处理应该会有所帮助。也许您应该查看可以在 IDE 中更改它的位置。 (或者用文本编辑器打开它...)

关于java - 为什么 Swing formWindowClosed 不能正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14672040/

相关文章:

java - 使用 JButton 更改 Java 中的界面

java - 理解我的代码有什么问题的问题

java - 如何在jDisktopPane中显示JinternalFrame,但该DisktopPane包含GridLayout?

java - 同步线程池ExecutorService

java - 测试 Spring Boot 库模块

java - 如何使用 MockMVC 对 Spring-Boot REST 端点进行单元测试,其中路径映射是环境变量?

java - 使用 Jackson 进行动态对象映射

c - "lvalue required in asm statement"错误

Netbeans:无法使用自定义 jComponent(不在类路径中?)

java - 如何将文件路径传递给远程 Web 服务