View Javadoc

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  }