ポップアップメニュー

  1. 目的
     ポップアップメニューは、 複数のメニュー項目を表示し、マウスで選択された項目に対応する処理を実行する機能です

  2. 利用法
    1. ポップアップメニューの生成
      popupMenuクラスを利用します。

       PopupMenu popupMenu1 = new PopupMenu();

    2. メニュー項目の生成
      メニュー項目は、MenuItemクラスで宣言します。ここでは二つの項目を指定します。

       MenuItem puItem1,puItem2;

      各MenuItemのインスタンスを生成し、ActionListenerを追加します。これで、puitem1 を選択すると、イベントが生成されます。

       puItem1=new MenuItem("puItem1");
       puItem1.addActionListener(this);

      "puItem1"が、メニュー項目として表示されます。.addActionListener()でこの項目をイベントとして登録します。最後に

       add(popupMenu1);

      で、アプレットにpopupMenu1を追加します。

    3. ポップアップイベント処理
       ポップアップイベントの処理に actionPerformed( ) を利用します。これを利用するには、アプレットの宣言部に「インターフェース」ActionListener を組み込む必要があります。

       public class popmenu extends Applet implements ActionListener

      actionPerformed( ) は、受け取ったイベントを解析し、イベントの原因 e.getSource() が puItem1
      なら、対応する処理を実行します。ここでは、単に ラベルに表示するだけです。
       public  void actionPerformed(ActionEvent e) {
          if(e.getSource()==puItem1)
            label1.setText("menu1");
          if(e.getSource()==puItem2)
            label1.setText("menu2");
        }

    4. その他
       メニューの選択結果を表示する ラベル:label1 と、マウスボタンの押し下げで実行される、イベント処理:this_mousePressed() を追加します。

  3. プログラム
    1. プログラム

      import java.applet.*;
      import java.awt.*;
      import java.awt.event.*;
      
      
      public class popmenu extends Applet implements ActionListener{
          PopupMenu popupMenu1 = new PopupMenu();
          MenuItem puItem1,puItem2;
          Label label1 = new Label();
          
          public void init(){
              //popup メニューの定義
              puItem1=new MenuItem("puItem1");
              puItem1.addActionListener(this);
              puItem2=new MenuItem("puItem2");
              puItem2.addActionListener(this);
              popupMenu1.add(puItem1);
              popupMenu1.addSeparator();
              popupMenu1.add(puItem2);
              add(popupMenu1);
              
              setLayout(null);
              label1.setText("label1");
              label1.setBounds(new Rectangle(32, 71, 121, 24));
              add(label1, null);
              
              
              addMouseListener(new java.awt.event.MouseAdapter() {
                public void mousePressed(MouseEvent e) {
                  this_mousePressed(e);
                }
              });     
          }
          
          public  void actionPerformed(ActionEvent e) {
             if(e.getSource()==puItem1)
               label1.setText("menu1 selected");
             if(e.getSource()==puItem2)
               label1.setText("menu2 Selected");
           }
      
          void this_mousePressed(MouseEvent e){
              popupMenu1.show(this,e.getX(),e.getY());
          }   
      
      }

    2. 実行結果
       マウスのボタンを押すと、マウスの位置にポップアップメニューが現れます。メニューを選択すると、メッセージが現れ、ポップアップメニューは消えます。