////////////////////////////////////////////////////////////////////////////////
// << j370b.java >>
//
//  Applet(6):部品(キャンバス、配置、イベント処理)
//
//    アプレット内に赤丸ボタン、白丸ボタンを作成する。
//  赤丸ボタンをクリックすると、赤丸がキャンバスに描画され、
//  白丸ボタンをクリックすると、白丸がキャンバスに描画される。
//
// ●イベント処理
//  イベントソース:Buttonクラス
//  イベントクラス:ActionEventクラス
//  イベントリスナ:ActionListenerインターフェース
//          actionPerformedメソッド
//
// ●Graphicsクラスのメソッド
//    public abstract void fillOval(int x, int y, int w, int h)
//   機能:x,y,w,hで指定される矩形内に塗りつぶされた楕円が描画される。
//            x : 描画される楕円の左上隅の x 座標
//            y : 描画される楕円の左上隅の y 座標
//            w : 描画される楕円の幅
//            h : 描画される楕円の高さ
// 
////////////////////////////////////////////////////////////////////////////////

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;

class Canvasj370b extends Canvas {

  Color col;
  public void paint(Graphics g) {
    g.setColor(col);
    g.fillOval(20,20,50,50);
 }

}
  
public class j370b extends Applet implements ActionListener {

  Canvasj370b c;
  Button b1,b2;

  public void init() {

    // アプレットの背景色を灰色に設定。
    this.setBackground(Color.lightGray);

    // アプレットのレイアウトマネージャをFlowLayoutに設定。
    this.setLayout(new FlowLayout(FlowLayout.LEFT,20,20));

    // キャンバスの作成。
    c = new Canvasj370b();

    // キャンバスの大きさを設定。
    c.setSize(100,80);

    // キャンバスの位置を設定。
    c.setLocation(10,10);

    // キャンバスの背景色を黄色に設定。
    c.setBackground(Color.yellow);

    // キャンバスをアプレット内に追加。
    this.add(c);

    // ボタンの作成。
    b1 = new Button("赤丸");
    b2 = new Button("白丸");

    // ボタンをアプレット内に追加。
    this.add(b1);
    this.add(b2);

    // イベントリスナの登録。
    b1.addActionListener(this);
    b2.addActionListener(this);

  }

  // ActionListenerインターフェースのメソッド。
  public void actionPerformed(ActionEvent ae) {
    // 赤丸ボタンがクリックされたとき。
    if( ae.getSource() == b1 ) { c.col = Color.red; } 
    // 白丸ボタンがクリックされたとき。
    if( ae.getSource() == b2 ) { c.col = Color.white; }
    c.repaint(); // 再描画。
  }

}
HTMLファイル
<html>
<head>
  <title>アプレット</title>
</head>
<body bgcolor=white text=black>
<applet code="j370b.class" width="300" height="160">
</applet>
</body>
</html>
実行結果