////////////////////////////////////////////////////////////////////////////////
// << ja129e.java >>
//
//  JApplet(2):部品(パネル、イベント処理)
//
//  パネルの背景色をランダムに変化させる。
//
// ●イベント処理
//  イベントソース:Timerクラス
//  イベント      :ActionEventクラス
//  イベントリスナ:ActionListenerインターフェース
//          actionPerformedメソッド
//
// ●javax.swing.Timerクラス
//    1 つ以上のアクションイベントを、指定された遅延時間の経過後に
//  イベントリスナに通知する。
//
// ●javax.swing.Timerクラスのコンストラクタ
//    public Timer(int delay,  ActionListener listener)
//   機能:delay(ミリ秒単位)ごとにリスナーへ通知するTimer を生成する。
//
// ●javax.swing.Timerクラスのメソッド
//    public void start()
//      機能:Timer を起動し、リスナーへのアクションイベントの送信を開始する。
//    public void stop()
//   機能:Timer を停止し、リスナーへのアクションイベントの送信を停止する。
//
////////////////////////////////////////////////////////////////////////////////

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*;

public class ja129e extends JApplet implements ActionListener {

  JPanel p;
  Timer timer;

  public void init() {
    // アプレットからコンテンツペインを取得。
    Container c = this.getContentPane();

    // コンテンツペインのレイアウトマネージャをBorderLayoutに設定。
    c.setLayout(new BorderLayout(20,20));

    // パネルの作成。
    p = new JPanel();
 
    // パネルをコンテンツペイン内に追加。
    c.add(p,BorderLayout.CENTER);

    // タイマーの作成。
    timer = new Timer(2000, this);
  }

  // ActionListenerインターフェースのメソッド。
  public void actionPerformed(ActionEvent e) {
    Color color = new Color((int)(Math.random()*256),
                            (int)(Math.random()*256),
                            (int)(Math.random()*256));
    p.setBackground(color);
  }

  public void start() {
    timer.start();
  }

  public void stop() {
    timer.stop();
  }
}
HTMLファイル
<html>
<head>
  <title>アプレット</title>
</head>
<body bgcolor=white text=black>
<applet code="ja129e.class" width="300" height="200">
</applet>
</body>
</html>
実行結果