Я программирую небольшой инструмент, чтобы применить фильтры к большому количеству изображений. Я хочу добавить индикатор выполнения при загрузке изображений. Для этого я написал здесь этот простой код:
//Set up Progressbar
int pictureCount = 0;
for (File file : chooser.getSelectedFile().listFiles(isImage)) {
pictureCount++;
}
progressBar.setMinimum(0);
progressBar.setMaximum(pictureCount);
//Load all the Images and updating Progressbar
for (File file : chooser.getSelectedFile().listFiles(isImage)) {
BufferedImage bi = ImageIO.read(file);
tilesNew.add(bi);
progressBar.setValue(progressBar.getValue() + 1);
}
К сожалению, индикатор выполнения обновляется только в конце l oop. поэтому он показывает 0% все время, а затем сразу 100% после того, как программа загрузила все изображения в течение нескольких секунд.
До сих пор я пытался использовать frame.revalidate()
, frame.repaint()
и Thread.sleep()
в l oop. Все безуспешно.