>> 331-332
何となく分かってきた・・・というか自分を納得させました。
しかし、新たな?問題が出てきました。
次のように paint を具体的に書いてみました。すると
g.drawOval() だとボタンを押すだけで再描画されますが
g.drawRect() だとボタンを押しただけでは再描画されません。
(マウスやキーのイベントが必要のようです)

これはどういうことなのでしょうか?

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) {
  /****** 下のいづれかを使用する ******/
  // g.drawOval(0, 0, 100, 100);
  // g.drawRect(0, 0, 100, 100);
}
public void actionPerformed(ActionEvent ae) {
  if (ae.getActionCommand().equals("yellow")) {
    this.setBackground(Color.yellow);
  } else {
    this.setBackground(Color.blue);
  }
}