获取应用关闭事件

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.SignalRuntime.getRuntime().addShutdownHook

More info

【讨论】:

以上是关于获取应用关闭事件的主要内容,如果未能解决你的问题,请参考以下文章

调用HSQLDB jar中DatabaseManagerSwing类的main方法后如何获取窗口关闭事件?

应用程序关闭时如何在 EKEventStore 中检测?

JQuery获取页面关闭事件

js获取关闭浏览器事件

当用户在 Qt 应用程序中单击任务栏/停靠图标时获取事件或通知

python 获取控制台被关闭事件和ctrl+c事件 脚本