////////////////////////////////////////////////////////////////////////////////
// << ja131.java >>
//
//  JApplet(2):部品(ポップアップメニュー、イベント処理)
//
// ●操作
//  アプレット内で右ボタンをクリック(ポップアップトリガーという)したとき、
//  その位置にポップアップメニューを表示する。
//
// ●イベント処理
//  イベントソース:マウス操作
//  イベント   :MouseEventクラス
//  イベントリスナ:MouseListenerインターフェース
//          mousePressed, mouseReleased, mouseClicked, mouseEntered,
//           mouseExited メソッド
//                    ActionListenerインターフェース
//                    actionPerformedメソッド
//
// ●JPopupMeuuクラス
//    ポップアップメニューを利用するとき、JPopupMenuクラスを使う。
//
// ●JPopupMenuのコンストラクタ
//  public JPopupmenu(String s)
//      機能:タイトルsのポップアップメニューを作成する。
//
// ●JPopupMenuクラスのメソッド
//  public void show(Component c, int x, int y)
//      機能:部品cの位置(x,y)にポップアップメニューを表示する。
//
// ●MouseEventクラスのメソッド
//  public boolean isPopupTrigger()
//      機能:イベントがポップアップトリガーならtrue、他の場合false。
//
// ●java.awt.event.ComponentEventクラスから継承したメソッド 
//  public Component getComponent()
//      機能:イベントソースを取得する。
// 
////////////////////////////////////////////////////////////////////////////////

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

public class ja131 extends JApplet implements ActionListener, MouseListener {

  JPopupMenu pm;
  JMenuItem jmi1,jmi2,jmi3;
  Container c;

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

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

    // イベントリスナの登録。
    jmi1.addActionListener(this);
    jmi2.addActionListener(this);
    jmi3.addActionListener(this);
    this.addMouseListener(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); }
  }

  // MouseListenerインターフェースのメソッド(マウスのイベント処理)。
  public void mouseReleased(MouseEvent e) {
    if(e.isPopupTrigger()) {
      pm.show(e.getComponent(), e.getX(), e.getY());
    } 
  }
  public void mousePressed(MouseEvent e) { }
  public void mouseClicked(MouseEvent e) { }
  public void mouseEntered(MouseEvent e) { }
  public void mouseExited(MouseEvent e) { }
}
HTMLファイル
<html>
<head>
  <title>アプレット</title>
</head>
<body bgcolor=white text=black>
<applet code="ja131.class" width="300" height="200">
</applet>
</body>
</html>
実行結果