1

我有一个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();
}
4

2 回答 2

4

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

于 2013-02-03T11:43:34.320 回答
0

您可以改用 formWindowClosing 。

要通过 Netbeans IDE GUI Builder 执行此操作: 转到 Design 视图并右键单击 Navigator 窗口中的 [JFrame]。转到事件并选择要添加的事件。

请记住在 defaultCloseOperation 属性中将帧标记为 DO_NOTHING_ON_CLOSE。

于 2020-05-10T00:37:32.027 回答