JPopupMenuクラスの定義とコンストラクタ
JPopupMenuクラスの定義を確認します。クラス図は次のようになっています。
java.lang.Object java.awt.Component java.awt.Container javax.swing.JComponent javax.swing.JPopupMenu public class JPopupMenu extends JComponent implements Accessible, MenuElement
JPopupMenuクラスはJComponentクラスのサブクラスとなっています。JComponentクラスはSwingで用いられる多くのコンポーネントのベースとなっているクラスです。
JPopupMenuクラスのコンストラクタ
JPopupMenuクラスをを利用するにはコンストラクタを使ってJPopupMenuクラスのオブジェクトを作成します。どのようなコンストラクタが用意されているか確認してみます。
コンストラクタ |
---|
JPopupMenu() 呼び出しコンポーネントの定義なしで JPopupMenu を構築します。 |
JPopupMenu(String label) 指定されたタイトルの PopupMenu を構築します。 |
コンストラクタは2つだけです。タイトルを指定するかどうかでコンストラクタを使い分けますが、通常ポップアップメニューではタイトルは使用しません。
では1番目のコンストラクタを確認してみます。
public JPopupMenu()
呼び出しコンポーネントの定義なしで JPopupMenu を構築します。
ポップアップメニュー自体はメニューアイテムを格納するための箱です。その為ポップアップメニューだけを作成しても中身が無い枠だけが作成されます。
実際の使い方は次のようになります。
JPopupMenu popup = new JPopupMenu();
サンプルプログラム
では簡単なサンプルを作成して試してみます。まだ解説していない部分が多数出てきますが次のページ以降で順次解説していきます。
import javax.swing.*; import java.awt.BorderLayout; import java.awt.event.*; public class JPopupMenuTest1 extends JFrame implements MouseListener{ JPopupMenu popup; public static void main(String[] args){ JPopupMenuTest1 frame = new JPopupMenuTest1(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setBounds(10, 10, 300, 200); frame.setTitle("タイトル"); frame.setVisible(true); } JPopupMenuTest1(){ JButton button = new JButton("button"); JPanel p = new JPanel(); p.add(button); p.addMouseListener(this); popup = new JPopupMenu(); JMenuItem updateMenuItem = new JMenuItem("最新の情報に更新"); JMenuItem propertyMenuItem = new JMenuItem("プロパティ"); popup.add(updateMenuItem); popup.add(propertyMenuItem); getContentPane().add(p, BorderLayout.CENTER); } public void mouseReleased(MouseEvent e){ showPopup(e); } public void mousePressed(MouseEvent e){ showPopup(e); } public void mouseClicked(MouseEvent e){} public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} private void showPopup(MouseEvent e){ if (e.isPopupTrigger()) { popup.show(e.getComponent(), e.getX(), e.getY()); } } }
上記をコンパイルした後で実行すると次のように表示されます。
画面上の任意の位置でマウスを右クリックして下さい。次のようにその位置にメニューが表示されます。
( Written by Tatsuo Ikura )
著者 / TATSUO IKURA
これから IT 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。