2012-02-16 3 views
12

Как добраться до события закрытия приложения?Получить событие закрытия приложения

Я хочу получить приложение, чтобы сохранить все несохраненные операции или показать пользователю сообщение «Вы уверены в закрытии без сохранения всех данных?» что-то вроде этого.

Если это будет полезно - приложение является SingleFrameAplication с использованием Swing.

ответ

18

Вы можете использовать shutdown hook. Он работает для Swing, AWT и даже консольных приложений.

Пример:

Runtime.getRuntime().addShutdownHook(new Thread() 
{ 
    @Override 
    public void run() 
    { 
     //do your stuff 
    } 
}); 
+4

Будьте осторожны, используя ссылки roseindia. пожалуйста, прочтите http://balusc.blogspot.com/2008/06/what-is-it-with-roseindia.html Я бы рекомендовал http://docs.oracle.com/javase/7/docs/api/java /lang/Runtime.html#addShutdownHook(java.lang.Thread) вместо ссылки – Sean

+1

@Sean, спасибо за предупреждение! Я отредактировал ответ с более законной ссылкой. –

2

Вы должны добавить WindowListener к вашему JFrame/JDialog, о закрытии мероприятия есть способ общественного void windowClosing(WindowEvent e) { пример кода here

0

Вы можете использовать sun.misc.Signal или Runtime.getRuntime().addShutdownHook

More info

Смежные вопросы