
How can I detect from a Swing app that the PC is being shut-down?运行良好的Windows程序需要允许用户在关闭PC时保存其工作。 如何使我的应用检测关闭事件?如果用户选择说"取消",则任何解决方案都应允许用户中止关机。 正常的Swing窗口关闭挂钩不起作用,也没有添加关闭挂钩。 在测试中,不会调用WindowListener的方法(windowClosing,windowClosed等)。 我接受的答案要求使用平台特定的代码(JNI来注册WM_QUERYENDSESSION)。这不是Swing的错误吗? 请参阅http://forums.sun.com/thread.jspa?threadID=481807 将一些JNI代码写入WM_QUERYENDSESSION消息。您可以从MSDN文档中或通过谷歌搜索获取详细信息。 如果您不想编写太多的C代码来执行此操作,我可以推荐JNA库,请单击此处。这为您提供了一些不错的Java C语言抽象。 如何在Windows中很好地关闭我的Java应用程序 可能有帮助 查找Java中的信号处理。 Windows关闭时,它将向应用程序发送信号,要求其终止最有可能是sigterm 有关此信息,请参见此处(我不是网站的所有者) 以上似乎是更好的答案。 我找不到有关检测窗口关闭事件的任何好信息。我猜可能最好的方法是使用窗口关闭事件等来检测您的应用程序试图关闭的天气,然后提出问题。 http://www.javalobby.org/java/forums/t17933 |