当Windows强制关闭并记录时捕获JFrame关闭

时间:2014-06-06 16:27:16

标签: java swing user-interface shutdown

我有一个gui跑步。如果强制重新启动Windows,我希望我的gui在关闭之前将其记录下来。我正在使用以下代码,当您单击“X”关闭窗口时它会起作用,但如果窗口强行关闭它则不起作用。

WindowAdapter listener = new WindowAdapter() {
        public void windowClosing(WindowEvent w) {  
        log(w.paramString());
        frame.dispose();
        }
};

2 个答案:

答案 0 :(得分:2)

您应该可以使用Runtime.addShutdownHook(...)方法。

Java虚拟机关闭以响应两种事件:

  1. 当最后一个非守护程序线程退出或调用exit(等效,System.exit)方法时,程序正常退出,或者

  2. 虚拟机将响应用户中断(例如键入^ C)或系统范围的事件(例如用户注销或系统关闭)而终止。

答案 1 :(得分:1)

看起来你不能抓住OS Restart事件。不过,此处还有一些其他建议可以帮助您:Capture Windows shutdown, log off and restart in Windows service built in Java?