Popupメニュー


●Popup

JPopupMenuクラスを使ってポップアップメニューを作成した場合、コンストラクタで作成するだけでは表示されません。
ポップアップメニューを表示させるにはJPopupMenuクラスで用意されている「show」メソッドを使います。

●サンプル

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

class JPopupMenuTest extends JFrame implements ActionListener, MouseListener {
  JPopupMenu popup = new JPopupMenu();  //パネル
  JPopupMenuTest() {
    JMenuItem menuA = new JMenuItem("menuA");  //ボタン生成
    JMenuItem menuB = new JMenuItem("menuB");  //ボタン生成
    menuA.addActionListener(this);  //ボタン押下
    menuB.addActionListener(this);  //ボタン押下
    popup.add(menuA);  //パネルにボタン配置
    popup.add(menuB);  //パネルにボタン配置

    getContentPane().addMouseListener(this);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  //フレームを閉じるボタン
    setTitle("JPopupMenuTest");
    setSize(200, 100);
    setVisible(true);
  }
  public void actionPerformed(ActionEvent e) {  //ボタン押下時
    System.out.println(e.getActionCommand());
  }
  public void mousePressed(MouseEvent e) {
    if (e.isPopupTrigger()) {
      popup.show(e.getComponent(), e.getX(), e.getY());
    }
  }
  public void mouseReleased(MouseEvent e) {
    if (e.isPopupTrigger()) {
      popup.show(e.getComponent(), e.getX(), e.getY());
    }
  }
  public void mouseClicked(MouseEvent e) {
  }
  public void mouseEntered(MouseEvent e) {
  }
  public void mouseExited(MouseEvent e) {
  }
  public static void main(String[] args) {
    new JPopupMenuTest();
  }
}

●実行結果