К такому неопределенному вопросу я могу дать лишь некоторые рекомендации в качестве ответа.
JProgressBar
имеет способ setIndeterminate(Boolean);
, который вы можете использовать.
Теперь большая проблема, с которой вы сталкиваетесь с progressbars, заключается в том, что для просмотра анимации прогресса долговременная операция, выполняемая во время показа индикатора progressbar, должна выполняться в потоке non-gui. Мне нужно будет направить вас на адрес Concurrency in Swing.
Основные шаги для диалога модальным с ProgressBar являются
- Создать JDialog
- Установить это модальный (читай API JDialog)
- Дайте ему
Layout
- Вставьте прогрессбар как или внутри, например,
JPanel
, который имеет подходящий Layout
. Here - ваши варианты.
- Запустите затянувшийся задачу в новом потоке с
SwingWorker
или что-то другое
https://docs.oracle.com/javase/tutorial/uiswing/components/progress.html –
так не эта работа ? также вы должны установить промежуточное значение в значение true. –
Чтобы лучше помочь, отправьте сообщение [MCVE] (http://stackoverflow.com/help/mcve) (минимальный полный проверяемый пример) или [SSCCE] (http://www.sscce.org/) (Short, Self Содержащийся, правильный пример). В дополнение к совету @FastSnail, общая проблема с просмотром индикатора выполнения - это «блокировка EDT». Это обычно упоминается на SO. –