Получите доступ к немодальному JFrame, пока модальный JDialog виден? - PullRequest
0 голосов
/ 24 декабря 2018

Можно ли получить доступ к немодальному JFrame, когда виден модальный JDialog?

У меня есть JFrame, который показывает мои строки журнала.Когда я отображаю модальный JDialog, например, для входа в систему, пользователь не может щелкнуть JFrame.

JFrame не является родителем / владельцем JDialog.

JFrame - этопервый созданный JFrame.

Обратите внимание, что когда я делаю что-то в JDialog, что приводит к добавлению строки журнала в журнал, я вижу, что это появляется в JFrame.

Вот как этодолжен работать или возможно позволить пользователю щелкнуть JFrame, пока модальный JDialog виден?

Ответы [ 2 ]

0 голосов
/ 26 декабря 2018

Кажется, что использование ModalityType.DOCUMENT_MODAL является ответом.

Дайте JDialog ModalityType.DOCUMENT_MODAL (setModalityType) и убедитесь, что setModal имеет значение false.JDialog также должен иметь окно владельца / родителя.

JFrame, который всегда должен быть доступен, не должен иметь отношения к JDialog, поэтому не используйте его в качестве владельца / родителя для JDialog.

Теперь JDialog блокирует окно владельца / родителя, но JFrame по-прежнему доступен, пока отображается модальный JDialog.

Благодарю @Hovercraft Full Of Eels за указание на ModalityType.

0 голосов
/ 24 декабря 2018

Если диалоговое окно является модальным приложения, например, ModalityType.APPLICATION_MODAL, то оно заблокирует взаимодействие пользователя со всеми другими окнами верхнего уровня в приложении, пока диалоговое окно является видимым.Это не мешает самому приложению изменять другие состояния окон верхнего уровня, включая любой текст, который они отображают.

...