首頁 / CompScience / Programming / Languages / java / 運用進度列

運用進度列

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) {;}
}

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

Print Friendly, PDF & Email
馬上成為工作達人的Fans

About ㄚ琪

工作達人Fun Taiwan的創辦者及總編,可以在這裡更認識他。

發表迴響

你的電子郵件位址並不會被公開。 Required fields are marked *

*

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料

Scroll To Top