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