import acm.graphics.*;
import acm.program.*;
public class Practice extends GraphicsProgram {
private GOval ball;
public void run(){
GOval ball=new GOval(100,100);
add(ball,10,10);
while(ball.getX<getWidth()){
moveBall();
pause(50);
}
}
private void moveBall() {
// TODO Auto-generated method stub
ball.move(x,y);
}
private static final int x=10;
private static final int y=10;
}
求这个程序错误点。。。。
------解决方案--------------------------------------------------------
GOval ball=new GOval(100,100);
每次ball都是new出来的,所以while(ball.getX<getWidth()){你这句话始终都是真的,估计会无限循环导致内存溢出。
因为你在外面已经定义了ball,所以里面把run()方法中的
GOval ball=new GOval(100,100);
改为:
ball=new GOval(100,100);