1

毎秒現れる円を描いてみましたが、できましたが、どうすれば古い形を消すことができますか?

 public void paint(Graphics g) {
  try {
    while (true) {
        Shape circle = new Ellipse2D.Double(500*Math.random(),500*Math.random(), 50.0f, 50.0f);
        Graphics2D ga = (Graphics2D)g;
        ga.draw(circle);
        ga.setPaint(Color.green);
        ga.fill(circle);
        ga.setPaint(Color.red);
        Thread.sleep(1000);

    }
} catch (InterruptedException e) {
    e.printStackTrace();
} 

}

4

3 に答える 3

1

背景色を取得し、それを使用して古い円を背景色の円で覆います。

于 2011-06-03T00:07:25.983 に答える
0

super.paint(g);ループ内で最初に呼び出してみてください。

于 2011-06-03T00:09:39.803 に答える
0

ここでの最も簡単な方法は、単にメソッドg.clearRect(WIDTH, HEIGHT);の先頭を呼び出すことpaint()です。

于 2011-06-03T00:55:19.583 に答える