Как перевернуть диалоговые окна над JFrames? - PullRequest
0 голосов
/ 15 марта 2011

У меня есть Java-программа, которая выполняет такие действия:

Она начинается с диалоговых окон, затем, когда пользователь нажимает кнопку OK / Отмена или X или что-то еще, переходит к JFrames или диалоговым окнам.У JFrames также есть такие кнопки, как Next / Ok и т. Д. Когда программа продолжается, один JFrame (назовем его «Строка состояния») всегда виден на экране и никогда не исчезает (это то, что я хочу).(Я не хочу распоряжаться им, потому что они содержат важную информацию, которую пользователь должен видеть при выборе будущих диалоговых окон и других JFrames).

Теперь моя проблема возникает ... когда появляется диалоговое окно будущего, я не могу нажать на эту "Строку состояния" JFrame.По какой-то причине я должен сначала что-то сделать в диалоговом окне.Как я должен нажать кнопку «ОК / Отмена» в диалоговом окне, если я получаю другое диалоговое окно (зависит от того, где находится программа), у меня та же проблема.Пока я не наделен другим JFrame, тогда я могу нажимать на JFrame «Строка состояния», нажимать на него и все хорошие вещи, представленные на этом JFrame.

Одним из решений является преобразование всех оставшихся диалоговых оконв JFrames, но это займет много времени, так как у меня есть все виды диалоговых окон.И тогда связывание всего вместе будет занимать много времени.

Итак, есть ли функция или код, который я могу сказать Java ... чтобы дать пользователю возможность взаимодействовать с "Строкой состояния" JFrame, пока на экране отображается диалоговое окно.

Надеюсь, у меня есть смысл.Пожалуйста, спросите, если что-то не ясно.Я ценю помощь.

Ответы [ 2 ]

1 голос
/ 15 марта 2011

Если вы используете Java 6, вы можете использовать новые настройки модальности.

Модальность в диалоговых окнах

В зависимости от дизайна вашего графического интерфейса, вы можете сделать диалоги Document модальными, а не немодальными (эквивалентно setModal (false)).Обратите внимание, что это будет работать, только если диалоговые окна отображаются в другом корневом контейнере, чем Progress JFrame.

Другой вариант - установить модальное исключение для JFrame, которое вы хотите всегда видеть.Таким образом, ваши диалоги могут блокировать другие кадры, и вам не нужно помнить setModal(false) каждый раз, когда вы добавляете новый диалог:

progressFrame.setModalExclusionType(Dialog.ModalExclusionType.APPLICATION_EXCLUDE);
1 голос
/ 15 марта 2011

Вызвать метод setModal(false) во всех диалоговых окнах, чтобы вы могли перейти к JFrame, пока открыт JDialog.

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