我正在编写一个程序,当我单击时会移动一个矩形。我有一个函数move()
可以将矩形向下移动一个像素 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);
}
}
}
call move()
fromrun()
或 from 和有什么不一样mouseClicked()
?我该如何解决?