運用進度列

Java Swing. 基礎篇的運用進度列這個部份,課本有一個範例:

for (int i = MY_MINIMUM; i <= MY_MAXIMUM; i++) {
final int ii=i;

SwingUtilities.invokeAndWait({
new Runnable() {
public void run()
it.updateBar(ii);
}
});

try{java.lang.Thread.sleep(100);}catch(Exception e){;}

}
}

}

發現這個迴圈讓我死得很慘,可是我看原文的範例:

for (int i = MY_MINIMUM; i <= MY_MAXIMUM; i++) {
final int percent=i;
try {
SwingUtilities.invokeAndWait({
new Runnable() {
public void run() {
it.updateBar(percent);
}
});
java.lang.Thread.sleep(100);
} catch (Exception e) {;}
}

也是錯!

到了第二版的時候:

for (int i = MY_MINIMUM; i <= MY_MAXIMUM; i++) { final int percent=i; try { SwingUtilities.invokeLater(new Runnable( ) { public void run( ) { it.updateBar(percent); } }); java.lang.Thread.sleep(100); } catch (InterruptedException e) {;} }

已經改成用invokeLater,結果也對了!

可是其實如果第一版的範例改成這樣:

for (int i = MY_MINIMUM; i <= MY_MAXIMUM; i++) {
final int percent=i;
try {
SwingUtilities.invokeAndWait(
new Runnable() {
public void run() {
it.updateBar(percent);
}
});
java.lang.Thread.sleep(100);
} catch (Exception e) {;}
}

其實也是對的!左右括號,及大括號不對齊是會死得很慘的!

感謝你看到這裡,很快就可以離開了,但最好的獎勵行動就是按一下幫我分享或留言,感恩喔~

點我分享到Facebook

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *