-4
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回だけ移動して停止したいときに停止することはありませんが、代わりにそれは永遠に続きます.

4

2 に答える 2

4

ループがpaint()メソッド内にあり、ループ内から呼び出すとrepaint()、メソッドが継続的に呼び出されます! ループは何度も実行されるのではなく、一度実行されてから、再度呼び出されるように自分自身を呼び出します。

于 2012-05-13T05:36:47.347 に答える
0

メソッド内でrepaint()を呼び出すと、何度も何度も呼び出され続けます。paint()paint()

于 2012-05-13T05:38:21.183 に答える