メニューバーの表示(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)") ) {
//バージョン情報を表示するダイアログなどの処理を書く
//ダイアログの表示はまた別のところで説明します
}
}
}