У меня есть основной класс, который имеет JProgressBar
. Из основного класса я создаю экземпляр класса (с именем Opener
), который имеет метод, который читает текстовые файлы, которые обычно большие (> 50000 строк текста).Перекрасить прогрессбар, когда он подключен к другому классу
Передаю ссылку JProgressBar методу класса Opener, который читает txt-файлы, так что progressbar доступен из класса Opener.
Метод определяется следующим образом:
public void readtxtfile (JProgressBar myjProgressBar){....}
Я называю этот метод следующим образом:
Opener myopener = new Opener();
myopener.readtxtfile (jProgressBar1);
Я знаю, что ссылка на ProgressBar работает правильно, потому что я могу установить его видимым из там (когда основной класс создается, индикатор прогресса установлен не видимым).
В методе readtxtfile
я изменяю значение панели выполнения по мере чтения файла txt.
myjProgressBar.setValue(mycounter);
myjProgressBar.revalidate();
myjProgressBar.repaint();
Моя проблема заключается в том, что индикатор выполнения не перекрашивается по мере изменения его значения. Что мне делать?
P.S: Когда все чтение файла txt завершено, индикатор выполнения обновляется. Но пока ничего не происходит.
Это звучит, как вы пытаетесь прочитать файл из событий в диспетчерские тему, предотвращая его от выполнения любые перекраски. – MadProgrammer
просто общее примечание: установка основного свойства JSomething (например, _value_ progressbar) никогда не требует revalidate или repaint - это внутренне обрабатывается. – kleopatra