所有的編碼運行,我唯一的問題是進度條不顯示值的變化。我設置了這些值,但是如果我運行該值,則不會顯示在進度條上。 (酒吧沒有填滿)Java - 進度條沒有進展
public void logIn() {
try {
while (true) {
calculate();
System.out.println(loadingProgress);
if (loadingProgress < 100) {
mGUI.pbLoading.setValue(loadingProgress);
Thread.sleep(random.nextInt(5000) + 100);
} else {
mGUI.pbLoading.setValue(100);
break;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
public void calculate() {
random = new Random();
loadingProgress = loadingProgress + random.nextInt(9) + 1;
}
似乎在這裏你阻止'EDT'。閱讀[Swing中的併發](https://docs.oracle.com/javase/tutorial/uiswing/concurrency/),還需要使用['SwingWorker']](https://docs.oracle.com/javase/教程/ uiswing/concurrency/simple.html)長背景任務。檢查[示例](http://stackoverflow.com/a/15710912/2894369)。 – alex2410
完全相同的情況我面臨(http://stackoverflow.com/questions/29727991/jprogressbar-does-not-update-within-the-loop)。 [這裏](http://stackoverflow.com/questions/29817219/changing-the-default-cursor-to-busy-cursor-does-not-work-as-expected)是固定的代碼。使用SwingWorker。 –