Google検索エンジン

トップページ » Javaアプリケーション開発 » JPopupMenuポップアップメニューの表示


JPopupMenuの使い方(ポップアップメニューを表示する方法)

  • ポップアップメニューを表示するにはJPopupMenuクラスを使用します。 JPopupMenuクラスのshowメソッドを実行することで、呼び出しコンポーネント内の x座標、y座標で指定された位置に、ポップアップメニューを表示します。

    アクションを判定するときは、isPopupTriggerメソッドを使用してMouseEventを判定することができます。 isPopupTriggerメソッドは、MouseEventをポップアップトリガーと見なす場合、戻り値としてtrueを返します。 下のサンプルソースコードの場合は、右クリックするとポップアップトリガーと判定して、ポップアップメニューを表示します。

    アクションイベント全てを監視するときは、ActionListenerをimplementsします。 マウスに関連するイベントを監視するときは、MouseListenerをimplementsします。


    JPopupMenuを使ってポップアップメニューを表示した例
    JPopupMenuを使ってポップアップメニューを表示したサンプル画像
    サンプルソースコード
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    
    class JPopupMenuSample extends JFrame
                      implements ActionListener, MouseListener {
       JPopupMenu popup = new JPopupMenu();
       JPopupMenuSample() {
          JMenuItem menuA = new JMenuItem("メニューA");
          JMenuItem menuB = new JMenuItem("メニューB");
          menuA.addActionListener(this);
          menuB.addActionListener(this);
          popup.add(menuA);
          popup.add(menuB);
    
          getContentPane().addMouseListener(this);
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
          setTitle("JPopupMenuを使ってポップアップメニューを表示");
          setSize(530, 100);
          setVisible(true);
       }
       public void actionPerformed(ActionEvent e) {
          System.out.println(e.getActionCommand());
       }
       public void mousePressed(MouseEvent e) {
          System.out.println("マウスボタンを押す");
       }
       public void mouseReleased(MouseEvent e) {
          if (e.isPopupTrigger()) {
             popup.show(e.getComponent(), e.getX(), e.getY());
             System.out.println("マウスボタン右を離す");
          }else{
             System.out.println("マウスボタン左を離す");
          }
       }
       public void mouseClicked(MouseEvent e) {
          System.out.println("マウスボタンをクリック");
       }
       public void mouseEntered(MouseEvent e) {
          System.out.println("カーソルON");
       }
       public void mouseExited(MouseEvent e) {
          System.out.println("カーソルOFF");
       }
       public static void main(String[] args) {
          new JPopupMenuSample();
       }
    }
    

Swingでアプリのパーツを表示する方法
書籍の紹介
  • Effective Java 第2版 (The Java Series)
    Effective Java
    発売:2008/11/27
    定価:3,780円
    著者:Joshua Bloch他
    出版:ピアソンエデュケーション
    内容:著者のGoogle, Sun Microsystemsにおけるソフトウェア開発で得た知識・経験をまとめています。Javaプログラミングをする全てのSE必読の書籍です。
  • プログラミング言語Java (The Java Series)
    プログラミング言語Java
    発売:2007/04
    定価:4,410円
    著者:ケン・アーノルド他
    出版:ピアソンエデュケーション
    内容:Javaの原典と呼べる本です。変数、コメント、定数、制御、クラス、配列、文字列、例外処理までわずか30ページで進むので、Javaを学習し始めたばかりの方には少し難しいかもしれません。厚さの割に価格も手ごろなので、Java使いなら本棚に置いておきたい本です。
  • なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング
    なぜ、あなたはJavaでオブジェクト指向開発ができないのか
    発売:2004/12
    定価:2,289円
    著者:小森 裕介
    出版:技術評論社
    内容:Javaのソフトウェア開発を中心に事業を発展させてきたSMG社の新人教育セミナーを加筆・書籍化したもので、大卒の新人に対して、ゼロからJava言語を教えてきた実績をフィードバックしています。