我有一个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
的自定义实现。问题是app在没有执行formWindowClosed的情况下关闭。
不是formWindowClosed
我想在应用程序关闭之前放置执行代码的方法吗?
formWindoClosed
实施:
private void formWindowClosed(java.awt.event.WindowEvent evt)
{
System.out.println("Message");
brain.getBirou().getProbaRepo().WriteParticipantToTXT();
}
答案 0 :(得分:4)
如果要在进程退出之前执行代码,则必须将默认关闭操作设置为WindowConstants.DISPOSE_ON_CLOSE
,然后在侦听器方法中保存文件,然后在完成后调用System.exit(0);
。
此外,“Swing”本身不会生成代码。也许您应该亲自为自己编写GUI代码。那么你当然可以修改任何东西
您必须能够更改窗口的退出行为,因此将其设置为关闭时应该有所帮助。也许您应该在IDE中查找可以更改它的位置。 (或者只是用文本编辑器打开它......)
答案 1 :(得分:0)
您可以改用formWindowClosing。
要通过Netbeans IDE GUI Builder执行此操作: 转到设计视图,然后在导航器窗口中右键单击[JFrame]。转到事件,然后选择要添加的事件。
请记住在defaultCloseOperation属性中将框架标记为DO_NOTHING_ON_CLOSE。