Как обновить Swing JProgressBar в Java - PullRequest
0 голосов
/ 01 марта 2012

Я действительно новичок в Java, особенно работаю с графическим интерфейсом в Java.Я хочу добавить индикатор прогресса в свою программу, где он обновляет свое значение каждый раз после выполнения определенного объема работы.Прямо сейчас у меня есть кнопка, которая выполняет метод при нажатии, и я помещаю функцию setValue () (со значением, которое я хочу) каждый раз, когда в этом методе выполняется определенная работа.Тем не менее, когда я нажимаю кнопку, кнопка, кажется, застряла нажата, пока метод продолжается (метод занимает некоторое время, чтобы завершить выполнение), и индикатор выполнения не обновляется, пока все другие вещи не будут выполнены в ButtonListener, так что сразу после 100%.

Что я делаю не так?

Заранее спасибо.

1 Ответ

3 голосов
/ 01 марта 2012

Это, скорее всего, потому что вы выполняете всю работу в основном потоке, поэтому он зависает в вашем интерфейсе, пока вся работа не будет завершена.Вы не должны этого делать.Вы должны использовать отдельный EDT для таких операций.То, что вы должны попробовать, - это выполнить работу по обновлению progressBar в отдельном EDT.Для этого используйте SwingUtilities.invokeLater(Runnable r).

...