Если вы просто хотите что-то сделать, когда приложение закрывается, вы можете подключить выключение с помощью t его код:
Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
public void run() {
// Do what you want when the application is stopping
}
}));
Однако это не позволит вам закрыть окно. Если вам нужно кое-что проверить, прежде чем действительно выход, вы можете переопределить windowClosing
событие:
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
// Do what you want when the window is closing.
}
});
Обратите внимание, что первое решение - с помощью выключения крючок - имеет то преимущество, что оно не связано с событием окна, и будет выполняться, даже если приложение остановлено другим событием (за исключением, конечно, если процесс Java убит жестоко).
Когда я использовал конструктор Thread(), был поврежден файл, который был сохранен в методе Thread.run(). Но когда я использовал конструктор Thread (Runnable), как было предложено в этом примере, файл был сохранен правильно. Было ли мне повезло или что тип конструктора имеет значение? – ka3ak
Это также очень полезно при обработке апплетов. При выходе из них void stop() не всегда вызывается, тогда как этот метод. Благодаря! : D – Daan
За исключением случаев, когда вы используете обработчик IDE и завершаете эскиз с помощью кнопки «Стоп», и в этом случае даже этот метод не работает. – rednoyz