Запуск кадра из диалога - PullRequest
2 голосов
/ 30 ноября 2011

Я новичок в Swing, надеюсь, кто-то может мне помочь.

У меня есть модальное JDialog d1, которое содержит JXHyperlink, что, когда я нажимаю на него, я должен запустить JFrame f однако, когда я делаю это, рамка f идет за диалогом d1, поэтому я решил, что нужно установить для диалога d1 немодальное, чтобы это работало, и это сработало!

   d1.setModal(false)

Теперь моя проблема в том, что у меня есть еще один «модальный» диалог d2, в котором есть кнопка, при нажатии которой он должен открывать диалоговое окно d1, но по какой-то причине d1 отстаетd2.

Что я делаю не так?Разрешено ли мне запускать немодальное диалоговое окно из модального диалогового окна?

Ответы [ 2 ]

2 голосов
/ 01 декабря 2011

Модальное диалоговое окно всегда отображается на его родительском элементе. Итак, если вы запустите какое-либо окно (JFrame, немодальный JDialog) из модального диалога, оно будет отставать.

Решение заключается в том, что если вы хотите, чтобы диалог d (n) находился в диалоге d (n-1), сделайте его модальным и установите d (n-1) в качестве его родителя.

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

0 голосов
/ 01 декабря 2011

Вероятно, стоит отметить, что изменения модальности не могут быть сделаны, пока всплывающее окно видно.Вы можете изменить видимость (setVisible (boolean)) всплывающего окна, а затем изменить его модальность, но если он виден, любые изменения модальности не будут иметь никакого эффекта.

...