Perilaku nilai pembaruan JProgressBar (Berulir)

Sepertinya saya tidak mengerti mengapa ketika bekerja dengan nilai tertentu, JProgressBar akan terhenti dan berhenti membuat perhitungan. Misalnya kode di bawah ini hanya akan menampilkan nol sepanjang waktu;

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

namun jika dengan implementasi yang sama saya melakukan hal berikut ini berhasil (tentu saja tidak akurat karena hanya perhitungan sampah):

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

ada ide kenapa?


person Carlos    schedule 19.03.2011    source sumber
comment
jadi, Anda ingin bilah kemajuan diperbarui hanya setiap 100 perubahan pada nilai i?   -  person MeBigFatGuy    schedule 19.03.2011


Jawaban (1)


Jika Anda mengetahui kisaran kemajuannya (mungkin 0 - 2500) Anda dapat memberi tahu JProgressBar melalui progressBar.setMaximum(2500). Dengan cara ini Anda tidak memerlukan variabel barValue, cukup biarkan bilah kemajuan mengetahui kemajuan sebenarnya Anda.

person krock    schedule 19.03.2011