- Home ›
- Swing ›
- メニューの作成(JMenu,JMenuBar,JMenuItemクラス) ›
- HERE
メニューにメニューアイテムを追加/挿入/削除
メニューを作成したら、メニューアイテムをメニューに追加していきます。ここではメニューにメニューアイテムを追加したり削除したりする方法を確認していきます。
メニューアイテムを追加
メニューを作成後、メニューアイテムをメニューに追加する方法を確認します。JMenuクラスで定義されているaddメソッドを使います。
add public JMenuItem add(JMenuItem menuItem)
このメニューの最後にメニュー項目を追加します。追加されたメニュー項目を返します。 パラメータ: menuItem - 追加する JMenuItem 戻り値: 追加された JMenuItem
引数にはメニューアイテムを表すJMenuItemクラスのオブジェクトを指定します。メソッドが実行されるとメニューの最後に引数に指定したメニューアイテムが追加されます。
実際の使い方は次のようになります。
JMenu menu = new JMenu("File");
JMenuItem menuitem1 = new JMenuItem("New");
JMenuItem menuitem2 = new JMenuItem("Open");
menu.add(menuitem1);
menu.add(menuitem2);
メニューアイテムを挿入
メニューアイテムをメニュー内の任意の位置に挿入する方法を確認します。JMenuクラスで定義されているinsertメソッドを使います。
insert public JMenuItem insert(JMenuItem mi, int pos)
指定された JMenuItem を指定された位置に挿入します。 パラメータ: mi - 追加する JMenuItem pos - 新しい JMenuItem を追加する位置を指定する整数 戻り値: 新しいメニュー項目 例外: IllegalArgumentException - pos の値が 0 より小さい場合
1番目の引数にはメニューアイテムを表すJMenuItemクラスのオブジェクトを指定します。そして2番目の引数にはメニューアイテムを挿入する位置を指定します。先頭のメニューアイテムの前に挿入する時は0を指定し、先頭と2番目の間の位置に挿入する場合は1を指定します。
実際の使い方は次のようになります。
JMenu menu = new JMenu("File");
JMenuItem menuitem1 = new JMenuItem("New");
JMenuItem menuitem2 = new JMenuItem("Close");
JMenuItem menuitem3 = new JMenuItem("Open");
menu.add(menuitem1);
menu.add(menuitem2);
menu.insert(menuitem3, 1);
メニューアイテムを削除
既に追加済みのメニューアイテムを削除する方法を確認します。JMenuクラスで定義されているremoveメソッドを使います。
remove public void remove(JMenuItem item)
このメニューから指定されたメニュー項目を削除します。ポップアップメニューがない場合は、この メソッドは無効です。 パラメータ: item - メニューから削除する JMenuItem
引数には削除したいJMenuItemクラスのオブジェクトを指定します。このオブジェクトはメニューに追加されているオブジェクトだある必要があります。
またメニューアイテムのインデックスを指定して削除することもできます。先ほどと同名のメソッドで引数が異なっているremoveメソッドを使います。
remove public void remove(int pos)
このメニューから、指定されたインデックスにあるメニュー項目を削除します。
パラメータ:
pos - 削除される項目の位置
例外:
IllegalArgumentException - pos の値が 0 より小さいか、pos がメニュー項目の数より大きい
場合
引数には削除するメニューアイテムのインデックスを指定します。先頭のメニューアイテムのインデックスは0、次のメニューアイテムのインデックスは1です。
また全てのメニューアイテムを削除することもできます。JMenuクラスで定義されているremoveAllメソッドを使います。
removeAll public void removeAll()
このメニューからメニュー項目をすべて削除します。
メソッドを実行すると、対象のメニューに追加されている全てのメニューアイテムが削除されます。
実際の使い方は次のようになります。
JMenu menu = new JMenu("File");
JMenuItem menuitem1 = new JMenuItem("New");
JMenuItem menuitem2 = new JMenuItem("Open");
JMenuItem menuitem3 = new JMenuItem("Close");
menu.add(menuitem1);
menu.add(menuitem2);
menu.add(menuitem3);
menu.remove(menuitem3);
menu.remove(1);
menu.removeAll();
サンプルプログラム
では実際に試してみます。
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JButton;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import java.awt.Container;
import java.awt.BorderLayout;
class SSample4_1 extends JFrame{
public static void main(String args[]){
SSample4_1 frame = new SSample4_1("タイトル");
frame.setVisible(true);
}
SSample4_1(String title){
setTitle(title);
setBounds(100, 100, 300, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JMenuBar menubar = new JMenuBar();
JMenu menu1 = new JMenu("File");
JMenu menu2 = new JMenu("Edit");
JMenu menu3 = new JMenu("Tool");
JMenu menu4 = new JMenu("Help");
menubar.add(menu1);
menubar.add(menu2);
menubar.add(menu3);
menubar.add(menu4);
JMenuItem menuitem1_1 = new JMenuItem("New");
JMenuItem menuitem1_2 = new JMenuItem("Open");
JMenuItem menuitem1_3 = new JMenuItem("Close");
menu1.add(menuitem1_1);
menu1.add(menuitem1_2);
menu1.add(menuitem1_3);
JMenuItem menuitem2_1 = new JMenuItem("Cut");
JMenuItem menuitem2_2 = new JMenuItem("Copy");
JMenuItem menuitem2_3 = new JMenuItem("Paste");
menu2.add(menuitem2_1);
menu2.add(menuitem2_3);
menu2.insert(menuitem2_2, 1);
setJMenuBar(menubar);
JPanel p = new JPanel();
JButton button = new JButton("button");
p.add(button);
Container contentPane = getContentPane();
contentPane.add(p, BorderLayout.CENTER);
}
}
ではコンパイルを行った上で実行してみます。
「File」メニューをクリックすると次のようにポップアップメニューが表示されメニューアイテムの一覧が表示されます。
同じく「Edit」メニューをクリックすると次のようにポップアップメニューが表示されメニューアイテムの一覧が表示されます。
( Written by Tatsuo Ikura )
JavaDrive