モジュール java.desktop
パッケージ javax.swing

クラスJMenu

すべての実装されたインタフェース:
ImageObserver, ItemSelectable, MenuContainer, Serializable, Accessible, MenuElement, SwingConstants

@JavaBean(description="A popup window containing menu items displayed in a menu bar.") public class JMenu extends JMenuItem implements Accessible, MenuElement
メニュー(ユーザーがJMenuBarの項目を選択したときに表示される、JMenuItemを含むポップアップ・ウィンドウ)の実装です。 JMenuItemのほかに、JMenuにはJSeparatorも含めることができます。

メニューというのは実質的にはJPopupMenuが割り当てられたボタンのことです。 「ボタン」が押されるとJPopupMenuが表示されます。 「ボタン」がJMenuBar上にあれば、そのメニューはトップレベル・ウィンドウです。 「ボタン」が別のメニュー項目であればJPopupMenuは「プルライト」メニューです。

メニューは構成可能で、Actionによりある程度まで制御できます。 メニューに対してActionを使用すると、メニューを直接構成する場合のと比べて利点があります。 詳細は「ActionをサポートするSwingコンポーネント」を参照してください。さらに、Java チュートリアルActionsの使用方法のセクションに詳細が説明されています。

メニューの使用方法の詳細と例については、『The Java Tutorial』の「How to Use Menus」を参照してください。

警告: Swingはスレッドに対して安全ではありません。 詳細は、「Swing's Threading Policy」を参照してください。

警告: このクラスの直列化されたオブジェクトは、今後のSwingリリースと互換ではなくなる予定です。 現在の直列化のサポートは、短期間の格納や、同じバージョンのSwingを実行するアプリケーション間のRMIに適しています。 1.4では、すべてのJavaBeansの長期ストレージのサポートがjava.beansパッケージに追加されました。 XMLEncoderを参照してください。

導入されたバージョン:
1.2
関連項目:
  • フィールド詳細

    • popupListener

      protected JMenu.WinListener popupListener
      ポップアップ用の、ウィンドウを閉じるためのリスナーです。
      関連項目:
  • コンストラクタの詳細

    • JMenu

      public JMenu()
      テキストのない新しいJMenuを作成します。
    • JMenu

      public JMenu(String s)
      指定された文字列をテキストとして持つ新しいJMenuを作成します。
      パラメータ:
      s - メニュー・ラベルのテキスト
    • JMenu

      public JMenu(Action a)
      指定されたActionからプロパティを取得するメニューを作成します。
      パラメータ:
      a - anAction
      導入されたバージョン:
      1.3
    • JMenu

      public JMenu(String s, boolean b)
      指定された文字列をテキストとして持ち、ティア・オフ・メニューかどうかが指定された、新しいJMenuを作成します。
      パラメータ:
      s - メニュー・ラベルのテキスト
      b - メニューがティア・オフできるかどうか(まだ実装されていない)
  • メソッドの詳細

    • updateUI

      public void updateUI()
      現在のルック・アンド・フィールからの値を持つUIプロパティをリセットします。
      オーバーライド:
      updateUI 、クラス:  JMenuItem
      関連項目:
    • getUIClassID

      @BeanProperty(bound=false) public String getUIClassID()
      このコンポーネントを描画するL&Fクラスの名前を返します。
      オーバーライド:
      getUIClassID 、クラス:  JMenuItem
      戻り値:
      文字列「MenuUI」
      関連項目:
    • setModel

      public void setModel(ButtonModel newModel)
      「メニュー・ボタン」のデータ・モデルを設定します。これは、ユーザーがクリックしてメニューを開いたり閉じたりするラベルです。
      オーバーライド:
      setModel 、クラス:  AbstractButton
      パラメータ:
      newModel - ButtonModel
      関連項目:
    • isSelected

      public boolean isSelected()
      メニューが現在選択されている(強調表示されている)場合にtrueを返します。
      オーバーライド:
      isSelected 、クラス:  AbstractButton
      戻り値:
      メニューが選択されている場合はtrue、そうでない場合はfalse
    • setSelected

      @BeanProperty(expert=true, hidden=true, description="When the menu is selected, its popup child is shown.") public void setSelected(boolean b)
      メニューの選択ステータスを設定します。
      オーバーライド:
      setSelected 、クラス:  AbstractButton
      パラメータ:
      b - メニューを選択する(強調表示する)場合はtrue、メニューを選択解除する場合はfalse
    • isPopupMenuVisible

      public boolean isPopupMenuVisible()
      メニューのポップアップ・ウィンドウが可視の場合にtrueを返します。
      戻り値:
      メニューが可視の場合はtrue、そうでない場合はfalse
    • setPopupMenuVisible

      @BeanProperty(bound=false, expert=true, hidden=true, description="The popup menu\'s visibility") public void setPopupMenuVisible(boolean b)
      メニューのポップアップの可視性を設定します。 メニューが使用可能でない場合は、このメソッドは無効です。
      パラメータ:
      b - boolean値。メニューを可視にする場合はtrue、隠す場合はfalse
    • getPopupMenuOrigin

      protected Point getPopupMenuOrigin()
      JMenuのポップアップ・メニューの原点を計算します。 このメソッドは、ポップアップの正確な位置を調整するため、Menu.menuPopupOffsetXMenu.menuPopupOffsetYMenu.submenuPopupOffsetX、およびMenu.submenuPopupOffsetYという名前のルック・アンド・フィールプロパティを使用します。
      戻り値:
      JMenuのポップアップ・メニューの原点として使う、メニューの座標空間にあるPoint
      導入されたバージョン:
      1.3
    • getDelay

      public int getDelay()
      サブメニューを表示または非表示にするまでの、推奨される遅延時間をミリ秒単位で返します。 各ルック・アンド・フィール (L&F)は、delayプロパティを監視するための独自のポリシーを決定できます。 ほとんどの場合、トップレベル・メニューの遅延、あるいはドラッグ中の遅延は監視されません。 delayのデフォルトは0です。 このメソッドはルック・アンド・フィールコードのプロパティであり、様々なUI実装の特質を管理するために使用されます。
      戻り値:
      delayプロパティ
    • setDelay

      @BeanProperty(bound=false, expert=true, description="The delay between menu selection and making the popup menu visible") public void setDelay(int d)
      メニューのPopupMenuを表示または非表示にするまでの、推奨される遅延時間を返します。 各ルック・アンド・フィール (L&F)は、遅延プロパティを監視するための独自のポリシーを決定できます。 ほとんどの場合、トップレベル・メニューの遅延、あるいはドラッグ中の遅延は監視されません。 このメソッドはルック・アンド・フィールコードのプロパティであり、様々なUI実装の特質を管理するために使用されます。
      パラメータ:
      d - 遅延時間(ミリ秒単位)
      例外:
      IllegalArgumentException - dが0より小さい場合
    • setMenuLocation

      public void setMenuLocation(int x, int y)
      ポップアップ・コンポーネントの位置を設定します。
      パラメータ:
      x - ポップアップ・メニューの新しい位置のx座標
      y - ポップアップ・メニューの新しい位置のy座標
    • add

      public JMenuItem add(JMenuItem menuItem)
      このメニューの最後にメニュー項目を追加します。 追加されたメニュー項目を返します。
      パラメータ:
      menuItem - 追加されるJMenuitem
      戻り値:
      追加されたJMenuItem
    • add

      public Component add(Component c)
      このメニューの最後にコンポーネントを追加します。 追加されたコンポーネントを返します。
      オーバーライド:
      add 、クラス:  Container
      パラメータ:
      c - 追加するComponent
      戻り値:
      追加されたComponent
      関連項目:
    • add

      public Component add(Component c, int index)
      指定されたコンポーネントを、このコンテナの指定された位置に追加します。 indexが -1の場合、コンポーネントは末尾に追加されます。
      オーバーライド:
      add 、クラス:  Container
      パラメータ:
      c - 追加するComponent
      index - コンポーネントを挿入する位置
      戻り値:
      追加されたComponent
      関連項目:
    • add

      public JMenuItem add(String s)
      指定されたテキストを持つ新しいメニュー項目を作成して、このメニューの末尾に追加します。
      パラメータ:
      s - 追加されるメニュー項目の文字列
      戻り値:
      新しいJMenuItem
    • add

      public JMenuItem add(Action a)
      指定されたActionオブジェクトに属する新しいメニュー項目を作成し、それをこのメニューの末尾に追加します。
      パラメータ:
      a - 追加されるメニュー項目のAction
      戻り値:
      新しいJMenuItem
      関連項目:
    • createActionComponent

      protected JMenuItem createActionComponent(Action a)
      JMenuに追加されるActionJMenuItemを作成するファクトリ・メソッドです。
      パラメータ:
      a - 追加されるメニュー項目のAction
      戻り値:
      新しいメニュー項目
      導入されたバージョン:
      1.3
      関連項目:
    • createActionChangeListener

      protected PropertyChangeListener createActionChangeListener(JMenuItem b)
      Actionに対する変更が発生した場合にコントロールを更新する、適切に構成されたPropertyChangeListenerを返します。
      パラメータ:
      b - PropertyChangeListenerを作成するためのメニュー・アイテム
      戻り値:
      b用のPropertyChangeListener
    • addSeparator

      public void addSeparator()
      メニューの最後に新しいセパレータを追加します。
    • insert

      public void insert(String s, int pos)
      指定されたテキストを持つ新しいメニュー項目を、指定された位置に挿入します。
      パラメータ:
      s - 追加するメニュー項目のテキスト
      pos - 新しいメニュー項目を追加する位置を指定する整数
      例外:
      IllegalArgumentException - posの値が0より小さい場合
    • insert

      public JMenuItem insert(JMenuItem mi, int pos)
      指定されたJMenuitemを指定された位置に挿入します。
      パラメータ:
      mi - 追加するJMenuitem
      pos - 新しいJMenuitemを追加する位置を指定する整数
      戻り値:
      新しいメニュー項目
      例外:
      IllegalArgumentException - posの値が0より小さい場合
    • insert

      public JMenuItem insert(Action a, int pos)
      指定されたActionオブジェクトに属する新しいメニュー項目を、指定された位置に挿入します。
      パラメータ:
      a - 追加するメニュー項目のActionオブジェクト
      pos - 新しいメニュー項目を追加する位置を指定する整数
      戻り値:
      新しいメニュー項目
      例外:
      IllegalArgumentException - posの値が0より小さい場合
    • insertSeparator

      public void insertSeparator(int index)
      指定された位置にセパレータを挿入します。
      パラメータ:
      index - メニュー・セパレータを挿入する位置を指定する整数値
      例外:
      IllegalArgumentException - indexの値が0より小さい場合
    • getItem

      public JMenuItem getItem(int pos)
      指定された位置のJMenuItemを返します。 posのコンポーネントがメニュー項目でない場合は、nullが返されます。 このメソッドはAWTの互換性のために用意されています。
      パラメータ:
      pos - 位置を指定する整数
      戻り値:
      指定された位置のメニュー項目。指定された位置の項目がメニュー項目でない場合はnull
      例外:
      IllegalArgumentException - posの値が0より小さい場合
    • getItemCount

      @BeanProperty(bound=false) public int getItemCount()
      セパレータを含めたメニュー項目数を返します。 このメソッドはAWTの互換性のために用意されています。
      戻り値:
      メニューの項目数を表す整数
      関連項目:
    • isTearOff

      @BeanProperty(bound=false) public boolean isTearOff()
      メニューがティア・オフ可能な場合にtrueを返します。 このメソッドはまだ実装されていません。
      戻り値:
      メニューがティア・オフ可能な場合はtrue、そうでない場合はfalse
      例外:
      Error - 呼び出された場合。このメソッドはまだ実装されていない
    • remove

      public void remove(JMenuItem item)
      このメニューから指定されたメニュー項目を削除します。 ポップアップ・メニューがない場合は、このメソッドは無効です。
      パラメータ:
      item - メニューから削除するJMenuItem
    • remove

      public void remove(int pos)
      このメニューから、指定されたインデックスにあるメニュー項目を削除します。
      オーバーライド:
      remove、クラス: Container
      パラメータ:
      pos - 削除される項目の位置
      例外:
      IllegalArgumentException - posの値が0より小さいか、posがメニュー項目の数より大きい場合
      関連項目:
    • remove

      public void remove(Component c)
      このメニューからコンポーネントcを削除します。
      オーバーライド:
      remove、クラス: Container
      パラメータ:
      c - 削除されるコンポーネント
      関連項目:
    • removeAll

      public void removeAll()
      このメニューからメニュー項目をすべて削除します。
      オーバーライド:
      removeAll 、クラス:  Container
      関連項目:
    • getMenuComponentCount

      @BeanProperty(bound=false) public int getMenuComponentCount()
      メニューのコンポーネント数を返します。
      戻り値:
      メニューのコンポーネント数を表す整数
    • getMenuComponent

      public Component getMenuComponent(int n)
      nの位置にあるコンポーネントを返します。
      パラメータ:
      n - 返されるコンポーネントの位置
      戻り値:
      要求されたコンポーネント。ポップアップ・メニューがない場合はnull
    • getMenuComponents

      @BeanProperty(bound=false) public Component[] getMenuComponents()
      メニューのサブコンポーネントのComponentの配列を返します。 セパレータを含め、ポップアップ・メニューにあるすべてのComponentを返します。
      戻り値:
      Componentの配列。ポップアップ・メニューがない場合は空の配列
    • isTopLevelMenu

      @BeanProperty(bound=false) public boolean isTopLevelMenu()
      メニューが「トップレベル・メニュー」の場合にtrueを返します。トップ・レベルとはメニューがメニュー・バーの直接の子の場合を示します。
      戻り値:
      メニューがメニュー・バーからアクティブにされる場合はtrue、別のメニューのメニュー項目からアクティブにされる場合はfalse
    • isMenuComponent

      public boolean isMenuComponent(Component c)
      指定されたコンポーネントがサブメニュー階層内にある場合にtrueを返します。
      パラメータ:
      c - テストされるComponent
      戻り値:
      Componentが存在する場合はtrue、そうでない場合はfalse
    • getPopupMenu

      @BeanProperty(bound=false) public JPopupMenu getPopupMenu()
      このメニューに関連したポップアップ・メニューを返します。 ポップアップ・メニューがない場合は、ポップアップ・メニューを作成します。
      戻り値:
      このメニューに関連付けられたJPopupMenu
    • addMenuListener

      public void addMenuListener(MenuListener l)
      メニュー・イベントのリスナーを追加します。
      パラメータ:
      l - 追加されるリスナー
    • removeMenuListener

      public void removeMenuListener(MenuListener l)
      メニュー・イベントのリスナーを削除します。
      パラメータ:
      l - 削除されるリスナー
    • getMenuListeners

      @BeanProperty(bound=false) public MenuListener[] getMenuListeners()
      このJMenuにaddMenuListener()で追加されたすべてのMenuListenerの配列を返します。
      戻り値:
      追加されたすべてのMenuListener。リスナーが追加されていない場合は空の配列
      導入されたバージョン:
      1.4
    • fireMenuSelected

      protected void fireMenuSelected()
      このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。 イベントのインスタンスはあとで生成されます。
      例外:
      Error - nullリスナーが存在する場合
      関連項目:
    • fireMenuDeselected

      protected void fireMenuDeselected()
      このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。 イベントのインスタンスはあとで生成されます。
      例外:
      Error - nullリスナーが存在する場合
      関連項目:
    • fireMenuCanceled

      protected void fireMenuCanceled()
      このイベント・タイプの通知対象として登録されているすべてのリスナーに通知します。 イベントのインスタンスはあとで生成されます。
      例外:
      Error - nullリスナーが存在する場合
      関連項目:
    • createWinListener

      protected JMenu.WinListener createWinListener(JPopupMenu p)
      ポップアップのウィンドウを閉じるリスナーを作成します。
      パラメータ:
      p - JPopupMenu
      戻り値:
      ウィンドウを閉じる新しいリスナー
      関連項目:
    • getSubElements

      @BeanProperty(bound=false) public MenuElement[] getSubElements()
      このメニュー・コンポーネントのサブメニューを格納するMenuElementの配列を返します。 ポップアップ・メニューがnullの場合は空の配列を返します。 このメソッドは、MenuElementインタフェースに適合するために必要です。 JSeparatorMenuElementインタフェースに適合しないので、この配列にはJMenuItemだけが含まれます。
      定義:
      getSubElements 、インタフェース: MenuElement
      オーバーライド:
      getSubElements 、クラス:  JMenuItem
      戻り値:
      MenuElementオブジェクトの配列
    • getComponent

      public Component getComponent()
      このMenuElementをペイントするのに使われるjava.awt.Componentを返します。 返されたコンポーネントは、イベントを変換し、イベントが発生した場所がメニュー・コンポーネント内であるかどうかを検出するために使われます。
      定義:
      getComponent 、インタフェース: MenuElement
      オーバーライド:
      getComponent 、クラス:  JMenuItem
      戻り値:
      このメニュー項目をペイントするComponent
    • applyComponentOrientation

      public void applyComponentOrientation(ComponentOrientation o)
      このメニューおよびこのメニューに含まれるすべてのコンポーネントのComponentOrientationプロパティを設定します。 これにはgetMenuComponentsによって返されたすべてのコンポーネントが含まれます。
      オーバーライド:
      applyComponentOrientation 、クラス:  Container
      パラメータ:
      o - このメニューおよびこのメニューに含まれるコンポーネントの新しいコンポーネント方向。
      例外:
      NullPointerException - orientationがnullである場合。
      導入されたバージョン:
      1.4
      関連項目:
    • setComponentOrientation

      public void setComponentOrientation(ComponentOrientation o)
      このメニューの向きと、ComponentOrientation引数によって決定される関連付けられたポップアップ・メニューを設定します。
      オーバーライド:
      setComponentOrientation 、クラス:  Component
      パラメータ:
      o - このメニューとそれに関連付けられたポップアップ・メニューの新しい向き。
      関連項目:
    • setAccelerator

      public void setAccelerator(KeyStroke keyStroke)
      setAcceleratorは、JMenuには定義されていません。 代わりにsetMnemonicを使用します。
      オーバーライド:
      setAccelerator 、クラス:  JMenuItem
      パラメータ:
      keyStroke - メニュー階層を移動することなくJMenuItemのアクション・リスナーを呼び出すキー・ストロークの組み合わせ
      例外:
      Error - 呼び出された場合。このメソッドはJMenuには定義されていない。 かわりにsetMnemonicを使用する
    • processKeyEvent

      protected void processKeyEvent(KeyEvent evt)
      ニーモニックやアクセラレータなどの、キー・ストローク・イベントを処理します。
      オーバーライド:
      processKeyEvent 、クラス:  JComponent
      パラメータ:
      evt - 処理されるキー・イベント
      関連項目:
    • doClick

      public void doClick(int pressTime)
      「クリック」をプログラム上で実行します。 このメソッドはメニューを表示するためにAbstractButton.doClickメソッドをオーバーライドします。
      オーバーライド:
      doClick 、クラス:  AbstractButton
      パラメータ:
      pressTime - ボタンが押されたミリ秒数
    • paramString

      protected String paramString()
      このJMenuの文字列表現を返します。 このメソッドはデバッグ専用であり、返される文字列の内容および形式は実装によって異なります。 返される文字列は空の場合がありますが、nullにはなりません。
      オーバーライド:
      paramString 、クラス:  JMenuItem
      戻り値:
      このJMenuの文字列表現。
    • getAccessibleContext

      @BeanProperty(bound=false) public AccessibleContext getAccessibleContext()
      このJMenuに関連付けられたAccessibleContextを取得します。 JMenuの場合、AccessibleContextはAccessibleJMenuの形式を取ります。 必要に応じて新規のAccessibleJMenuインスタンスが作成されます。
      定義:
      getAccessibleContext、インタフェース: Accessible
      オーバーライド:
      getAccessibleContext 、クラス:  JMenuItem
      戻り値:
      このJMenuのAccessibleContextとして機能するAccessibleJMenu