////////////////////////////////////////////////////////////////////////////////
// << j372b.java >>
//
//  Applet(6):部品(ポップアップメニュー、配置、イベント処理)
//
//  ポップアップメニューを作成し表示する。
//  項目「赤」「青」「黄」を選択すると、アプレットの背景色が変わる。
//
// ●イベント処理
//  イベントソース:マウスクラス
//  イベントクラス:MouseEventクラス、ActionEventクラス
//  イベントリスナ:MouseListenerインターフェース
//          mouseClickedメソッド、その他
//                    ActionListenerインターフェース
//                    actionPerformedメソッド
//
////////////////////////////////////////////////////////////////////////////////

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
  
public class j372b extends Applet implements ActionListener,MouseListener {

  PopupMenu pm;
  MenuItem mi1,mi2,mi3;

  public void init() {

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

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

    // ポップアップメニューの作成。
    pm = new PopupMenu();

    // ポップアップメニューをアプレット内に追加。
    this.add(pm); 

    // メニュー項目の作成。
    mi1 = new MenuItem("赤"); 
    mi2 = new MenuItem("黄"); 
    mi3 = new MenuItem("青"); 

    // メニュー項目をポップアップメニューに追加。
    pm.add(mi1);  
    pm.add(mi2); 
    pm.add(mi3); 

    // イベントリスナの登録。
    mi1.addActionListener(this);
    mi2.addActionListener(this);
    mi3.addActionListener(this);
    this.addMouseListener(this);

  }

  // ActionListenerインターフェースのメソッド。
  public void actionPerformed(ActionEvent ae) {
    if( ae.getSource() == mi1 ) { this.setBackground(Color.red); }
    if( ae.getSource() == mi2 ) { this.setBackground(Color.yellow); }
    if( ae.getSource() == mi3 ) { this.setBackground(Color.blue); }
  }

  // MouseListenerインターフェースのメソッド。
  public void mouseClicked(MouseEvent me) { 
    pm.show(this, me.getX(), me.getY()); 
  }
  public void mousePressed(MouseEvent me) { }
  public void mouseReleased(MouseEvent me) { }
  public void mouseEntered(MouseEvent me) { }
  public void mouseExited(MouseEvent me) { }

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