Image probe;
Thread t;
public int x=410,y=250;
public void init()
{
//Images Call
probe = getImage(getDocumentBase(),"image/probe.png");
t = new Thread();
}
public void paint(Graphics g)
{
for(int i=0;i<5;i++)
{
g.drawImage(probe,x,y,50,50,this);
g.setColor(Color.red);
System.out.print(i);
x=x+10;
y=y+10;
repaint();
try
{
t.sleep(100);
} catch(Exception e) {}
}
}
所以在这个它应该做我的for循环5次正确吗?但相反,它会一遍又一遍地做,并且当我希望它只移动5次然后停止时永不停止,但它只是永远地继续下去。
答案 0 :(得分:4)
如果您的循环使用paint()
方法,并且您在循环内调用repaint()
,则会导致该方法不断被调用!你循环不是一遍又一遍地执行,它执行一次然后再调用自己再次调用。
答案 1 :(得分:0)
如果您在paint()
方法中致电repaint(),则会一遍又一遍地呼叫paint()
。