ここではGUIコンポーネントのメニューバーについて説明する。
このメニューバーは、JMenuBerというクラス名である。
まず『File』『View』の2つのメニューバーを作る。
JMenuBarのインスタンスを生成しておいて、JFrameのsetJMenuBar()メソッド
のパラメータに渡すことにより、タイトルバーの真下にメニューバーを付ける事ができる。
これを元に作ると以下のプログラムになる。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class JMenuBarTest extends JFrame implements ActionListener {
JMenuBarTest() {
JMenuBar menuBar = new JMenuBar();
JMenu menuFile = new JMenu("File");
JMenu menuView = new JMenu("View");
menuFile.setMnemonic('F');
menuView.setMnemonic('V');
getRootPane().setJMenuBar(menuBar);
menuBar.add(menuFile);
menuBar.add(menuView);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("JMenuBarTest");
setSize(250, 200);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
System.out.println("[" + e.getActionCommand() + "]");
}
public static void main(String[] args) {
new JMenuBarTest();
}
}

これでメニューバーを作成した。次はWindowsと同じようにメニューバーにメニューをいれてみる。
JMenuに対して、メニュー項目(JMenuItem)を渡すことにより、プルダウンメニューを構成できる。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class JMenuBarTest extends JFrame implements ActionListener {
JMenuBarTest() {
JMenuBar menuBar = new JMenuBar();
JMenu menuFile = new JMenu("File");
JMenuItem menuOpen = new JMenuItem("Open");
JMenuItem menuExit = new JMenuItem("Exit");
JMenu menuView = new JMenu("View");
JMenuItem menuTool = new JMenuItem("Tool Bar");
JMenu menuSize = new JMenu("Size");
menuFile.setMnemonic('F');
menuOpen.setMnemonic('O');
menuExit.setMnemonic('x');
menuView.setMnemonic('V');
menuTool.setMnemonic('T');
menuSize.setMnemonic('S');
menuOpen.addActionListener(this);
menuExit.addActionListener(this);
menuTool.addActionListener(this);
getRootPane().setJMenuBar(menuBar);
menuBar.add(menuFile);
menuFile.add(menuOpen);
menuFile.add(menuExit);
menuBar.add(menuView);
menuView.add(menuTool);
menuView.add(menuSize);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("JMenuBarTest");
setSize(250, 200);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
System.out.println("[" + e.getActionCommand() + "]");
}
public static void main(String[] args) {
new JMenuBarTest();
}
}

ここではポップアップメニューのイベント処理をやっていく。ポップアップメニューは
マウスの右ボタンをクリックしたときにでてくるメニューである。
したがってマウスイベントの処理にも関係してきます。マウスイベント処理については
後ほどやりますので今回はこういうものだと覚えておく。
まずはポップアップメニューを作る。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class JPopupMenuTest extends JFrame implements ActionListener, MouseListener {
JPopupMenu popup = new JPopupMenu();
JPopupMenuTest() {
JMenuItem menuA = new JMenuItem("menuA");
JMenuItem menuB = new JMenuItem("menuB");
menuA.addActionListener(this);
menuB.addActionListener(this);
popup.add(menuA);
popup.add(menuB);
getContentPane().addMouseListener(this);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("JPopupMenuTest");
setSize(200, 100);
setVisible(true);
}
public void actionPerformed(ActionEvent e) {
System.out.println(e.getActionCommand());
}
public void mousePressed(MouseEvent e) {
if (e.isPopupTrigger()) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
}
public void mouseReleased(MouseEvent e) {
if (e.isPopupTrigger()) {
popup.show(e.getComponent(), e.getX(), e.getY());
}
}
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public static void main(String[] args) {
new JPopupMenuTest();
}
}
