クリックすると長方形を移動するプログラムを書いています。move()
長方形を1ピクセル下に100倍移動し、を使用して各移動の間に20ミリ秒待機する関数がありpause(20)
ます。この関数を呼び出すと、run()
すべてが期待どおりに機能し、アニメーションが表示されます。しかし、から呼び出すと 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);
}
}
}
からの呼び出しとmove()
からの呼び出しの違いは何ですか? どうすれば修正できますか?run()
mouseClicked()