Глобально отключить все данные мыши, когда отображается JDialog - PullRequest
0 голосов
/ 08 марта 2011

Я хотел бы реализовать следующее: когда мое приложение выполняет некоторые критические операции или выдает некоторые ошибки, я хочу отобразить предупреждение JDialog, сообщающее пользователю, что происходит.

Теперь, поскольку некоторые ошибки могут привести кмое приложение находится в несогласованном состоянии, пока они не будут разрешены, я хотел бы временно отключить отправку события мыши всем компонентам (включая JMenu, JToolbar, ..), кроме показанного JDialog.

Есть ли способ сделать это?Или я должен вручную удалить все прослушиватели мыши из всех компонентов моего приложения и добавить их позже?

Ответы [ 2 ]

6 голосов
/ 08 марта 2011

Сделать диалог "модальным" с помощью setModal(true).

0 голосов
/ 08 марта 2011

Самый простой способ - позвонить

frame.setEnabled(false);

где рамка - ваше окно верхнего уровня.

Обратите внимание, что приведенный выше soln может изменить внешний вид фрейма, пока он не будет включен снова. Для реального контроля люди играют с EventQueue.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...