我有一个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中进行更改的位置。 (或只是使用文本编辑器将其打开...)

09-05 09:42