2015-07-20 3 views
-1

Как создать всплывающее окно/модальный диалог с неопределенной панелью выполнения?Создать неопределенный JProgressBar Всплывающий/модальный диалог

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

Вот лучший результат I've получил до сих пор:

JProgressBar progressBar = new JProgressBar(); 
panel_3.add(progressBar); 
+3

https://docs.oracle.com/javase/tutorial/uiswing/components/progress.html –

+1

так не эта работа ? также вы должны установить промежуточное значение в значение true. –

+0

Чтобы лучше помочь, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример) или [SSCCE] (http://www.sscce.org/) (Short, Self Содержащийся, правильный пример). В дополнение к совету @FastSnail, общая проблема с просмотром индикатора выполнения - это «блокировка EDT». Это обычно упоминается на SO. –

ответ

0

К такому неопределенному вопросу я могу дать лишь некоторые рекомендации в качестве ответа.

JProgressBar имеет способ setIndeterminate(Boolean);, который вы можете использовать.

Теперь большая проблема, с которой вы сталкиваетесь с progressbars, заключается в том, что для просмотра анимации прогресса долговременная операция, выполняемая во время показа индикатора progressbar, должна выполняться в потоке non-gui. Мне нужно будет направить вас на адрес Concurrency in Swing.

Основные шаги для диалога модальным с ProgressBar являются

  1. Создать JDialog
  2. Установить это модальный (читай API JDialog)
  3. Дайте ему Layout
  4. Вставьте прогрессбар как или внутри, например, JPanel, который имеет подходящий Layout. Here - ваши варианты.
  5. Запустите затянувшийся задачу в новом потоке с SwingWorker или что-то другое