运用进度列

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

其实也是对的!左右括号,及大括号不对齐是会死得很惨的!