JProgressBar обновляет поведение значений (с резьбой) - PullRequest
2 голосов
/ 19 марта 2011

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

     ...
       int value = (100/maxGenerations)*i;       //maxGenerations = 2500
       final int barValue = value;
       SwingUtilities.invokeLater(new Runnable() {
          public void run() {
          progressBar.setValue(barValue);
        }
     });

однако, если с той же реализацией я делаю следующее, это работает (конечно, не точно, как просто вычисления мусора):

     ...
       int value = (i/100);         //where 'i' increments until = 2500
       final int barValue = value;
       SwingUtilities.invokeLater(new Runnable() {
          public void run() {
          progressBar.setValue(barValue);
        }
     });

есть идеи, почему?

1 Ответ

1 голос
/ 19 марта 2011

Если вы знаете, каков диапазон прогресса (предположительно 0 - 2500), вы можете сообщить JProgressBar через progressBar.setMaximum(2500). Таким образом, вам не нужна переменная barValue, просто сообщите индикатору выполнения ваш реальный прогресс.

...