////////////////////////////////////////////////////////////////////////////////
//  << ja155b.java >>
//
//  JApplet(3):キー操作(イベント処理、アダプタクラス)
//
// ●操作
//  押されたキーを文字列として表示する。
//
// ●リスナーインターフェースとアダプタクラスの対応
//     KeyListener          KeyAdapter
//
////////////////////////////////////////////////////////////////////////////////

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

public class ja155b extends JApplet {

  JLabel lab;
  Font f;
  String s;

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

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

    // フォントの作成。
    f = new Font("Courier", Font.BOLD, 48);

    // ラベルの作成。
    lab = new JLabel("キーを操作してください");
    // ラベルをコンテンツペイン内に追加。
    c.add(lab,BorderLayout.CENTER);

    // イベントリスナの登録。
    EventListener el = new EventListener();
    this.addKeyListener(el);
  }

  // アダプタクラスを内部クラスとして定義。
  class EventListener extends KeyAdapter {
    // 残りのメソッド(keyPressed,keyReleased)の定義が省略できる。  
    // keyTypedメソッドの定義。
    public void keyTyped(KeyEvent e) {
      s = "" + e.getKeyChar();
      lab.setText(s);
      lab.setFont(f);
      lab.setForeground(Color.green);
    }
  }
}
HTMLファイル
<html>
<head>
  <title>アプレット</title>
</head>
<body bgcolor=white text=black>
<applet code="ja155b.class" width="300" height="200">
</applet>
</body>
</html>
実行結果