2013-02-20 1 views
2

У меня есть длинная задача, которая работает, и я вывожу modaldialog с MainUI.modalDialog.setVisible(true);, у которого есть ProgressBar. Однако я наблюдаю, что он блокирует процесс. Как мне открыть диалоговое окно, не блокируя все, что работает в моем фрейме?ModalDialog блокировка в java

+0

Вы используете свой процесс вне EDT? например, в SwingWorker? – Kojotak

+0

Короткий ответ: нет. Модальные диалоги блокируют выполнение кода с того момента, когда диалог становится видимым. Можете ли вы расширить то, что вы пытаетесь сделать? – MadProgrammer

ответ

1

Это модальное поведение диалогов. Возможные варианты: вы либо не показываете его как модальный, либо отображаете его в отдельном потоке.

0

Вы должны все, что работает в вашем кадре, в другой поток, если это не код GUI. Также вы можете запустить модальное диалоговое окно в отдельном потоке графического интерфейса.

+0

Как вы запускаете что-то в отдельном потоке графического интерфейса? Swing - это однопоточная среда (ваша первая часть ответа правильная) – MadProgrammer

0

http://en.wikipedia.org/wiki/Modal_window

«В дизайне пользовательского интерфейса, модальное окно является дочерним окном, что требует от пользователей, чтобы взаимодействовать с ним, прежде чем они смогут вернуться к эксплуатации родительское приложение, предотвращая тем самым рабочий процесс по применению Главное окно. Модальные окна часто называют тяжелыми окнами или модальными диалогами, потому что окно часто используется для отображения диалогового окна ».

Решение: Не используйте модальное окно.

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

  • Нет связанных вопросов^_^