Новичок в Java здесь. Вот в чем дело: у меня есть следующий простой хук выключения:
class SHook implements Runnable {
public void run() {
System.out.println("SH is done.");
}
}
И у меня есть приложение с графическим интерфейсом с TextArea, где вывод перенаправляется, так что сообщение отображается там. Его оконный прослушиватель снова очень прост:
public class MyAdapter extends WindowAdapter {
public void windowClosing(WindowEvent w){
System.exit(0);
}
}
Когда я закрываю приложение с графическим интерфейсом с помощью кнопки [X], сообщение появляется на долю секунды, прежде чем все это закрывается. Здесь нет ничего плохого.
Что я хотел бы сделать, так это: после того, как сообщение было напечатано, подождите пару секунд, достаточно, чтобы ясно видеть, что сообщение было напечатано. Добавление sleep или wait или чего-то еще в метод run не работает, поскольку приложение по-прежнему закрывается немедленно.
Я предполагаю, что хук shutdown на самом деле выполняет свою работу должным образом, просто приложению все равно, и он немедленно закрывает графический интерфейс, в то время как мой хук печатает свое сообщение где-то в подвешенном состоянии Java.
Это правильно? Если да, есть ли какой-либо простой способ убедиться, что приложение с графическим интерфейсом закрывается только после того, как отключение-крючок выполнено, не делая выключение-крюк не-завершением?
shutdown()
и его вызовом? Или добавить прослушивательonClose
к вашему основному фрейму? - person Boris the Spider   schedule 17.05.2014