PopupSample2.java



import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;

/** 
 *  JDK1.1 に追加された PopupMenuを含むアプレット PopupSample2 クラス
 *  新しいイベントモデルによるメニューのアクション処理
 */

public class PopupSample2 extends Applet
                          implements MouseListener, ActionListener {

   /** インターフェイスの部品の宣言 */ 

      public PopupMenu menu;   // メニュー本体
      public MenuItem items[]; // メニュー項目

   /** 初期設定のメソッド */

      public void init() {

          String labels[] = { "Red", "Green", "Blue" };

          menu = new PopupMenu( "Popup Menu" );
               items = new MenuItem[3];
               for( int i=0; i<3; i++ ){
                    items[i] = new MenuItem( labels[i] );
                    menu.add( items[i] );
                    items[i].addActionListener( this ); //アクション処理の登録
               }
          add( menu );
          addMouseListener( this );
      }

   /** マウスのクリックの処理のメソッド */

      public void mousePressed( MouseEvent evt ){

           menu.show( this, evt.getX(), evt.getY() );  // メニューの出現
      }

      public void mouseClicked( MouseEvent evt ){
      }

      public void mouseReleased( MouseEvent evt ){
      }

      public void mouseEntered( MouseEvent evt ){
      }

      public void mouseExited( MouseEvent evt ){
      }

   /** アクション処理の内容 */

      public void actionPerformed( ActionEvent evt ){

             String label = ((MenuItem)evt.getSource()).getLabel();

             if( label == "Red" ) {

                 setBackground( Color.red );
             }
             else if( label == "Green" ) {

                 setBackground( Color.green );
             }
             else if( label == "Blue" ) {

                 setBackground( Color.blue );
             }
      }
}