日期:2014-05-20  浏览次数:20681 次

JFrame WindowListener 扩展
JFrame是可以绑定窗口关闭事件的。

frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
super.windowClosing(e);
System.out.println("窗口关闭!");
}
});


按照这样子绑定,确实能够起到窗口关闭时监听的效果。
当点击frame右上角的X按钮时可以监听到。

但是如果直接通过任务管理器来关闭进程,就监听不到了。

有什么办法 ,可以让任务管理器关闭进程  或 突然断电引起的程序关闭。 都能被监听到。

------解决方案--------------------
连main的return 都不到了 咋侦听?

我看只能通过监视手段来侦听,

比如用一个UDP  不停的通消息测试是否活着。(写一个watch服务?)




------解决方案--------------------
windowClosing()方法只是对窗口的监听,而任务管理器负责的进程,两者风马牛不相及,要想监听到再写一个监听方法,有个对应的windowClosed()方法监听对窗口的关闭的,不过用的是window的dispos()方法,它是以释放内存资源的方式关闭窗口的,而进程(线程的一部分)的运行需要内存的,我觉得可以,不过我没试过,楼主可以试试,可以的话告诉我一声!