メニューバーの表示(JMenu&JMenuBar&JMenuItem)

/*
 * メニューバーを表示するクラス
 * 
 * JMenuBar(←バー)にJMenu(←メニュー)を追加。
 * JMenuにJMenuItem(←アイテム)を追加。
 * ほかと同様にJMenuBarをフレームに追加。
 * ※この時、getContentPane()ではなく、getRootPane()に追加する。
 */
package menubar;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

public class ShowMenu extends JFrame implements ActionListener {
	public ShowMenu() {
		setTitle("ここにタイトル");
		setBounds(100,100,200,200);
		setDefaultCloseOperation(EXIT_ON_CLOSE);

		// フレームのルートパネルを呼び出して、バーを追加。
		// プログラムをすっきりさせるために、
		// メソッド化している。そのため、メニューを追加する
		// 処理は、このような書き方になる。
		getRootPane().setJMenuBar( createJMenuBar() );

		setVisible(true);
	}

	public static void main(String args[]) {
		new ShowMenu();
	}

	// メソッド化されたメニュー追加処理
	// 戻り値にJMenuBarを指定。
	public JMenuBar createJMenuBar() {
		// JMenuBarのインスタンスを生成
		JMenuBar bar = new JMenuBar();

		// JMenuのインスタンス生成
		// この時引数にStringを渡すと名前になる(以下同上)
		JMenu menu = new JMenu("メニュー(M)");
		menu.setMnemonic('M');

		// JMenuItemのインスタンス生成
		JMenuItem exit = new JMenuItem("終了(X)");
		exit.setMnemonic('X');

		JMenu help = new JMenu("ヘルプ(H)");
		help.setMnemonic('H');
		JMenuItem version = new JMenuItem("バージョン情報(A)");
		version.setMnemonic('A');

		// JMenuにJMenuItemを追加
		menu.add(exit);
		// JMenuBarにJMenuを追加
		bar.add(menu);

		help.add(version);
		bar.add(help);

		// ボタンの時同様、アクションを与える処理
		exit.addActionListener(this);
		version.addActionListener(this);

		return bar;
	}

	public void actionPerformed(ActionEvent ae) {
		if( ae.getActionCommand().equals("終了(X)") ) {
			System.out.println("終了");

			// アプリケーションを終了する命令
			System.exit(0);
		}
		else if( ae.getActionCommand().equals("バージョン情報(A)") ) {
			//バージョン情報を表示するダイアログなどの処理を書く
			//ダイアログの表示はまた別のところで説明します
		}
	}
}