1 package helloagain.kanday; 2 3 import javax.swing.JMenuBar; 4 import javax.swing.JMenu; 5 import javax.swing.JMenuItem; 6 import javax.swing.Action; 7 import java.util.logging.Logger; 8 9 /*** 10 * アプリケーション・ウィンドウのメニューバー表示クラス。 11 * 以下のメニュー構造を持つ。 12 * <ul> 13 * <li>File 14 * <ul> 15 * <li>Preferences 16 * <li>Exit 17 * </ul> 18 * <li>Help 19 * <ul> 20 * <li>About 21 * </ul> 22 * </ul> 23 * <p> 24 * Created: Wed May 26 12:03:48 2004 25 * 26 * @author <a href="mailto:torutk@02.246.ne.jp">TAKAHASHI,Toru</a> 27 * @version 1.0 28 */ 29 public class KandayMenuBar extends JMenuBar { 30 31 /*** 32 * 引数にプログラム設定情報を持つ<code>KandayPreferences</code>の 33 * インスタンスを取るコンストラクタ。 34 * 35 * 各メニュー項目の文字は、この設定情報から取得する。 36 * @param aPreferences プログラム設定情報 37 */ 38 public KandayMenuBar(KandayPreferences aPreferences) { 39 logger.entering(MYCLASS, "KandayMenuBar", aPreferences); 40 fileMenu = new JMenu(aPreferences.getMenuFile()); 41 fileMenu.setMnemonic('F'); 42 add(fileMenu); 43 preferencesItem = new JMenuItem(aPreferences.getMenuPreferences()); 44 fileMenu.add(preferencesItem); 45 exitItem = new JMenuItem(aPreferences.getMenuExit()); 46 fileMenu.add(exitItem); 47 48 helpMenu = new JMenu(aPreferences.getMenuHelp()); 49 helpMenu.setMnemonic('H'); 50 add(helpMenu); 51 aboutItem = new JMenuItem(aPreferences.getMenuAbout()); 52 helpMenu.add(aboutItem); 53 logger.exiting(MYCLASS, "KandayMenuBar"); 54 } 55 56 /*** 57 * File - Preferencesメニューを選択したときに実行されるアクションを 58 * 設定。 59 * @param anAction File->Preferences アクション 60 */ 61 public void setPreferencesAction(Action anAction) { 62 logger.entering(MYCLASS, "setPreferencesAction", anAction); 63 preferencesItem.setAction(anAction); 64 logger.exiting(MYCLASS, "setPreferencesAction"); 65 } 66 67 /*** 68 * File - Exitメニューを選択したときに実行されるアクションを設定。 69 * @param anAction File->Exit アクション 70 */ 71 public void setExitAction(Action anAction) { 72 logger.entering(MYCLASS, "setExitAction", anAction); 73 exitItem.setAction(anAction); 74 logger.exiting(MYCLASS, "setExitAction"); 75 } 76 77 /*** 78 * Help - Aboutメニューを選択したときに実行されるアクションを設定。 79 * @param anAction Help->About アクション 80 */ 81 public void setAboutAction(Action anAction) { 82 logger.entering(MYCLASS, "setAboutAction", anAction); 83 aboutItem.setAction(anAction); 84 logger.exiting(MYCLASS, "setAboutAction"); 85 } 86 87 private JMenu fileMenu; 88 private JMenuItem preferencesItem; 89 private JMenuItem exitItem; 90 private JMenu helpMenu; 91 private JMenuItem aboutItem; 92 93 private static final String MYCLASS = KandayMenuBar.class.getName(); 94 private static Logger logger = Logger.getLogger(MYCLASS); 95 }