もう一度 >> 249 を再掲させてもらいます。
まだ、わかんないんです。

public void init() {
  this.setBackground(Color.red);
  yellowB = new Button("yellow");
  blueB = new Button("blue");
  this.add(yellowB);
  this.add(blueB);
  yellowB.addActionListener(this);
  blueB.addActionListener(this);
}
public void paint(Graphics g) {
  // 背景に関係するコード無し
}
public void actionPerformed(ActionEvent ae) {
  if (ae.getActionCommand().equals("yellow")) {
    this.setBackground(Color.yellow);
  } else {
    this.setBackground(Color.blue);
  }
}
ボタンを押せば背景色が変わりますが
setBackground()だけで <再描画されるカラクリ> が分かりません
おしえてください。