Диалог прогресса в Swing - PullRequest
4 голосов
/ 04 февраля 2009

Как сделать так, чтобы модальный JDialog без кнопок отображался на время, необходимое для завершения экземпляра Runnable, и чтобы этот экземпляр обновлял индикатор выполнения / сообщение в этом диалоге?

Ясно, что спагетти-код может работать, но я ищу чистый дизайн, если он существует.

Ответы [ 3 ]

8 голосов
/ 04 февраля 2009

Возможно, вы захотите взглянуть на ProgressMonitor . Он автоматически открывает диалоговое окно с индикатором выполнения, если операция занимает много времени; см. Как использовать мониторы прогресса .

2 голосов
/ 10 сентября 2009

Посмотрите на проект, описанный по следующему URL: http://digilander.libero.it/carlmila/compmon/main.html

Это бесплатная Java-библиотека, альтернативная Swing ProgressMonitor.

1 голос
/ 04 февраля 2009

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

Затем монитор может принять решение показать диалоговое окно и сохранить его текущим. Позже, например, вы можете просто заменить диалог на индикатор выполнения в строке состояния. Используйте интерфейс для монитора (методы: start (), update (), end (), error (), isAborted ()), чтобы вы могли заменить его на что-то еще.

Вы можете расширить монитор, чтобы ждать 500 мс после запуска (), если есть конец (), и не показывать диалоговое окно в этом случае и т. Д.

Вот как Eclipse делает это и работает хорошо.

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