2009-02-04 2 views
4

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

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

ответ

8

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

+0

За исключением кнопки отмены? : P –

+0

Да, это не идеально, но он точно отвечает на вопрос. –

1

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

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

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

Это как Eclipse делает это, и она работает хорошо.

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