import java.awt.*;
import java.applet.*;

public class MovingCircleApplet3 extends MovingCircleApplet {

    protected Image image;                  // (1) DoubleBuffering用のイメージ
    protected Graphics g2;                  // (2) image に書き込むための
                                            //     Graphics Context

    public void update(Graphics g){
        paint(g);                           // (1) 全面消去を行わないように
    }                                       //     update を再定義

    public void paint(Graphics g){
        if(image == null){                  // (2) image が生成されていなければ
            image = createImage(400, 120);  //     生成する
            g2 = image.getGraphics();       // (3) image からGraphics Contextを
        }                                   //     得る

        g2.clearRect(0, 0, 400, 120);       // (4) image を消去する。
        g2.setColor(Color.red);
        g2.fillOval(x, 10, 100, 100);       // (5) xの位置に円を描画

        g.drawImage(image, 0, 0, this);     // (6) Buffering用のイメージを
    }                                       //     描画する
}