1
我正在編寫一個程序,當我單擊時將移動一個矩形。我有一個功能move()
,它將一個矩形向下移動100倍,並使用pause(20)
在每次移動之間等待20ms。當我在run()
中調用這個函數時,一切都按我的預期工作,並顯示一個動畫。但是當我從mouseClicked()
中調用它時,動畫並未顯示,但我只能看到矩形的最後一個位置。爪哇mouseClicked()畫布不更新
附上代碼:
import acm.program.*;
import acm.graphics.*;
import java.awt.event.*;
public class Test extends GraphicsProgram{
private GRect rect;
public void run() {
rect = new GRect(20,20);
add(rect, 0, 0);
move();
addMouseListeners();
}
public void mouseClicked(MouseEvent e) {
move();
}
void move()
{
for (int i=0; i<100; i++) {
rect.move(0, 1); pause(20);
}
}
}
是什麼叫從run()
或mouseClicked()
move()
之間的區別?我該如何解決它?
感謝您的評論。我測試了它,但結果是一樣的。 – Sayaka
請參閱編輯 – arynaq