У меня есть игра, в которой я пытаюсь перехватить закрытое событие и вернуть пользователя в главное меню. Я понял половину этого с помощью DO_NOTHING_ON_CLOSE
, но проблема в том, что я не могу вернуть обычную функциональность на экран меню.
Как вы, вероятно, знаете, проблема в том, что метод windowClosing
, по-видимому, является последним запущенным слушателем, если DO_NOTHING...
- операция.
Итак, мой вопрос, как я могу вернуть EXIT_ON_CLOSE
в окно, после того, как NOTHING
было сделано? Я бы хотел сделать это без участия пользователя. Я могу переключиться на другой JFrame и обработать его оттуда, но должен быть лучший способ сделать это.
Пример кода:
WindowAdapter waReturnToMenu = new WindowAdapter() {
@Override
public void windowClosing(final WindowEvent e) {
view.setDefaultCloseOperation(WindowConstants.DO_NOTHING_ON_CLOSE);
changeMenuState(0);
}
};
Затем в состоянии изменения меню:
public void changeMenuState(int i0) {
//...screen returns to menu, then
view.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}