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 関連の知識を学ばれる方を対象に、色々な言語でのプログラミング方法や関連する技術、開発環境構築などに関する解説サイトを運営しています。