Java for loop bug

时间:2012-05-13 05:21:18

标签: java for-loop applet

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次然后停止时永不停止,但它只是永远地继续下去。

2 个答案:

答案 0 :(得分:4)

如果您的循环使用paint()方法,并且您在循环内调用repaint(),则会导致该方法不断被调用!你循环不是一遍又一遍地执行,它执行一次然后再调用自己再次调用。

答案 1 :(得分:0)

如果您在paint()方法中致电repaint(),则会一遍又一遍地呼叫paint()