////////////////////////////////////////////////////////////////////////////////
// << ja130d.java >>
//
//  JApplet(2):部品(メニューの階層構造、イベント処理)
//
//   メニューの階層構造とイベント処理を組み合わせる。
//
// ●イベント処理
//  イベントソース:JMenuItemクラス
//  イベント      :ActionEventクラス
//  イベントリスナ:ActionListenerインターフェース
//          actionPerformedメソッド
//
////////////////////////////////////////////////////////////////////////////////

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

public class ja130d extends JApplet implements ActionListener {

  Container c;
  JMenuItem jmi1,jmi2,jmi3;

  public void init() {

    // アプレットのコンテンツペインを取得。
    c = this.getContentPane();

    // メニューバーjmbの作成。
    JMenuBar jmb = new JMenuBar(); 
    // メニューバーjmbをアプレット内に追加。
    this.setJMenuBar(jmb); 

    // メニューjmの作成。
    JMenu jm = new JMenu("メニュー"); 
    // メニューjmをメニューバーjmb内に追加。
    jmb.add(jm); 

    // メニューjmに含まれるメニューjm0,jm1の作成。
    JMenu jm0 = new JMenu("項目なし"); 
    JMenu jm1 = new JMenu("項目あり"); 
    // メニューjm0をメニューjm内に追加。
    jm.add(jm0); 
    // セパレータをメニューjm内に追加。
    jm.addSeparator(); 
    // メニューjm1をメニューjm内に追加。
    jm.add(jm1); 

    // メニュー項目jmi1,jmi2,jmi3の作成。
    jmi1 = new JMenuItem("赤"); 
    jmi2 = new JMenuItem("黄"); 
    jmi3 = new JMenuItem("青"); 
    // メニュー項目jmi1,jmi2,jmi3をメニューjm1内に追加。
    jm1.add(jmi1);  
    jm1.add(jmi2); 
    jm1.add(jmi3); 

    // イベントリスナの登録。
    jmi1.addActionListener(this);
    jmi2.addActionListener(this);
    jmi3.addActionListener(this);
  }

  // ActionListenerインターフェースのメソッド。
  public void actionPerformed(ActionEvent e) {
    if( e.getSource() == jmi1 ) { c.setBackground(Color.red); }
    if( e.getSource() == jmi2 ) { c.setBackground(Color.yellow); }
    if( e.getSource() == jmi3 ) { c.setBackground(Color.blue); }
  }
}
HTMLファイル
<html>
<head>
  <title>アプレット</title>
</head>
<body bgcolor=white text=black>
<applet code="ja130d.class" width="300" height="200">
</applet>
</body>
</html>
実行結果