タイトル
TOPJavaSwingJPopupMenu → This Page

JPopupMenu@Swing サンプル01

概要

Java - Swing - JPopupMenu のサンプルです。
・ポップアップメニューの生成

解説

メニューバー、メニュー、メニューアイテムの生成と追加の
シンプルなサンプルです。

JPopupMenuのメソッド説明です。
メソッド/説明引数引数説明
show(Component invoker, int x, int y)
呼び出しコンポーネント内の指定された位置にポップアップメニューを表示
invoker ポップアップメニューが表示されるコンポーネント
x 呼び出しコンポーネントのx座標
y 呼び出しコンポーネントのy座標
boolean isPopupTrigger()
マウスイベントが、そのプラットフォームの
ポップアップメニュートリガーイベントであるかどうかを返す
- -

isPopupTrigger はポップアップメニューを表示させるための
動作が行われたかどうかを判定します。
Windows 環境であれば「右クリックされた」ときに true を返します。

マウスイベントを検出するために MouseListener をインプリメントしています。


サンプルイメージ

サンプル画像


サンプルソース

import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JPopupMenu;

/**
 * JPopupMenu サンプル01
 * ・ポップアップメニューの生成
 * 
 * @author みっちー
 */
public class JPopupMenu01 extends JFrame implements MouseListener {
	
	private static final long serialVersionUID = 1L;
	
	/** ポップアップメニュー */
	private JPopupMenu popup;
	
	/**
	 * 開始メソッド
	 * 
	 * @param args	パラメータ
	 */
	public static void main(String[] args) {
		JPopupMenu01 frame = new JPopupMenu01();
		
		// 閉じるボタンをクリックされた場合の動作を設定
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		
		// ウインドウのタイトルを設定
		frame.setTitle("JPopupMenu サンプル01");
		
		// フレームの X座標、Y座標、幅、高さを設定
		frame.setBounds(100, 200, 400, 140);
		
		// フレームを表示(これをしないと透明のフレームが立ち上がってしまう)
		frame.setVisible(true);
	}
	
	/**
	 * コンストラクタ
	 */
	public JPopupMenu01() {
		// パネルを作成
		JPanel panelBase = new JPanel();
		
		// マウスリスナーを追加
		panelBase.addMouseListener(this);
		
		// ポップアップメニューを作成
		popup = new JPopupMenu();
		
		// メニューアイテムを作成
		JMenuItem menu1item1 = new JMenuItem("New");
		JMenuItem menu1item2 = new JMenuItem("Open");
		JMenuItem menu1item3 = new JMenuItem("Save");		
		
		// ポップアップメニューにアイテムを追加
		popup.add(menu1item1);
		popup.add(menu1item2);
		popup.add(menu1item3);
		
		// パネルを追加
		getContentPane().add(panelBase);
	}

	@Override
	public void mouseClicked(MouseEvent arg0) {
	}

	@Override
	public void mouseEntered(MouseEvent arg0) {
	}

	@Override
	public void mouseExited(MouseEvent arg0) {
	}

	@Override
	public void mousePressed(MouseEvent arg0) {
	}

	@Override
	public void mouseReleased(MouseEvent arg0) {
		if (arg0.isPopupTrigger()) {
			popup.show(arg0.getComponent(), arg0.getX(), arg0.getY());
		}
	}
}

サンプルソースのダウンロード

ソースのダウンロード(Eclipse用のプロジェクトファイルも同梱)

更新履歴

2016/05/13 新規作成


TOPJavaSwingJPopupMenu → This Page