>>410
actionPerformed()の中で,paint(getGraphics()); を呼ぶ。
しかし,描画処理と表示処理のロジックを分離するためにも,ダブルバッファリングを使うことをお勧め。
アニメーションのちらつきを抑えるのにも有効。
こんな感じで。
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class Circle extends Applet implements ActionListener{
Button button;
Image img; // ダブルバッファリング用オフスクリーン
Graphics img_g; // オフスクリーン描画用グラフィックコンテキスト
public void init(){
Dimension d = getSize();
img = createImage(d.width, d.height);
img_g = img.getGraphics();
button = new Button("Click me");
button.addActionListener(this);
add(button);
}
public void paint(Graphics g){
g.drawImage(img, 0, 0, this);
}
public void update(Graphics g){
paint(g);
}
public void actionPerformed(ActionEvent event){
img_g.drawOval(10,10,10,10); // 必要に応じてここに img_g に対する描画処理を追加する
paint(getGraphics());
}
}