Java Swing: повторение addWindowListener - PullRequest
1 голос
/ 13 февраля 2012

Привет всем, у меня есть два JFrames, один из них - мой основной логин, пользователь вводит имя пользователя и пароль и т. Д. *

После входа в систему пользователь перемещается в основную программу рабочего стола.

Пример: Когда пользователь загружается в первый раз и решает выйти, он нажимает x в углу, это вызывает мое событие addWindowListener, и они нажимают (отмена), это ничего не делает. Это то, что я хочу.

Однако, если пользователь входит в систему, переходит из моей формы входа в главное окно рабочего стола и затем нажимает x, он вызывает событие addWindowListener в главном окне и спрашивает, хотят ли они выйти из системы. Проблема в том, что когда они нажимают на действие, оно спрашивает его снова. Я проверял это, и, похоже, это происходит каждый раз, когда вызывается новое окно.

Итак ... может быть вопрос, как я могу сделать так, чтобы мое событие вызывалось только один раз?

Дополнительные примеры

Запустите программу> Нажмите X> Нажмите Отмена (это работает нормально) Пуск Программы> Вход> Нажмите X в главном окне> Нажмите Отмена (снова просит)

1 Ответ

1 голос
/ 13 февраля 2012

1) не используйте два JFrames , используйте JDialog с родитель / владелец для JFrame

2) для некоторых событий(после правильного входа в систему) вы можете удалить WindowListener из JFrame (лучше будет JDialog)

...