У меня есть основная программа, которая вызывает JFrame
для получения информации о пользователе. Если пользователь нажимает «Отправить», я сохраняю информацию в POJO и передаю ее в основную программу.
Если пользователь нажимает кнопку «Выход», я хочу удалить JFrame
и также хочу выйти из основной программы после выполнения одного оператора записи в методе main.
Если я использую -
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
and
this.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) {
e.getWindow().dispose();
}
});
все потоки завершаются немедленно, и я не могу выполнить регистрацию статистики в методе main.
Если я использую-
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) {
e.getWindow().dispose();
}
});
Мой основной метод выполняет эти записи в журнале, но никогда не завершается, после выполнения всех операторов он хранит молчание.
Если я использую это -
this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
this.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) {
Thread.currentThread.interrupt();
}
});
Все отлично работает. Но правильно ли это делать?