2009-05-29 4 views
6

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

+1

Думаю, вам нужно дополнительно определить «пауза». Вы имеете в виду, что вы хотите, чтобы пользовательский интерфейс полностью прекратил отвечать? Вы хотите сказать, что хотите, чтобы какой-то другой исполняемый поток приостановился? – Jared

ответ

17

Просто используйте:

setModal(true); 

Я обычно называю это внутри конструктора JDialog.

См. Javadocs на setModal(boolean).
http://java.sun.com/javase/6/docs/api/java/awt/Dialog.html#setModal(boolean)

Это приведет к блокировке текущего потока, пока диалоговое окно не закроется.

В качестве альтернативы, вы можете использовать:

setModalityType(Dialog.DEFAULT_MODALITY_TYPE); 

Это эквивалентно setModal(true) и технически правильный способ сделать это.

1

Просмотреть конструктор JDialog http://java.sun.com/j2se/1.4.2/docs/api/javax/swing/JDialog.html#JDialog(java.awt.Dialog,%20java.lang.String,%20boolean). Вы можете установить способ этого диалогового окна. Установка modal = true приостанавливает ваше приложение. вы также можете использовать метод 'setModal' http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Dialog.html#setModal(boolean)

+0

Эти комментарии/ответы не говорят, где код остановится. Этот момент может быть важным для понимания. – NormR

Смежные вопросы