获取应用关闭事件
Posted
技术标签:
【中文标题】获取应用关闭事件【英文标题】:Get the application closing event 【发布时间】:2012-03-08 05:10:59 【问题描述】:如何到达应用程序关闭事件?
我想让应用程序保存所有未保存的操作或向用户显示一条消息“您确定要关闭而不保存所有数据吗?”像这样的东西。
如果这会有所帮助 - 应用程序是使用 Swing 的 SingleFrameAplication
。
【问题讨论】:
【参考方案1】:您可以使用shutdown hook。它适用于 Swing、AWT 甚至控制台应用程序。
示例:
Runtime.getRuntime().addShutdownHook(new Thread()
@Override
public void run()
//do your stuff
);
【讨论】:
谨慎使用roseindia 链接。请阅读balusc.blogspot.com/2008/06/what-is-it-with-roseindia.html 我会推荐docs.oracle.com/javase/7/docs/api/java/lang/… 作为链接 @Sean,感谢您的警告!我用更合法的链接编辑了答案。【参考方案2】:您必须将WindowListener 添加到您的JFrame / JDialog
,关于关闭事件是否有方法公开void windowClosing(WindowEvent e)
代码示例here
【讨论】:
【参考方案3】:您可以使用sun.misc.Signal
或Runtime.getRuntime().addShutdownHook
More info
【讨论】:
以上是关于获取应用关闭事件的主要内容,如果未能解决你的问题,请参考以下文章
调用HSQLDB jar中DatabaseManagerSwing类的main方法后如何获取窗口关闭事件?