モジュール 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
    関連項目:
    JMenuItem, JSeparator, JMenuBar, JPopupMenu
    • フィールドの詳細

      • popupListener

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

      • 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
        関連項目:
        JComponent.updateUI()
      • setModel

        public void setModel​(ButtonModel newModel)
        「メニュー・ボタン」のデータ・モデルを設定します。これは、ユーザーがクリックしてメニューを開いたり閉じたりするラベルです。
        オーバーライド:
        setModel 、クラス:  AbstractButton
        パラメータ:
        newModel - ButtonModel
        関連項目:
        AbstractButton.getModel()
      • 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,
                             int index)
        指定されたコンポーネントを、このコンテナの指定された位置に追加します。 indexが -1の場合、コンポーネントは末尾に追加されます。
        オーバーライド:
        add 、クラス:  Container
        パラメータ:
        c - 追加するComponent
        index - コンポーネントを挿入する位置
        戻り値:
        追加されたComponent
        関連項目:
        remove(javax.swing.JMenuItem), Container.add(Component, int)
      • add

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

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

        protected JMenuItem createActionComponent​(Action a)
        JMenuに追加されるActionJMenuItemを作成するファクトリ・メソッドです。
        パラメータ:
        a - 追加されるメニュー項目のAction
        戻り値:
        新しいメニュー項目
        導入されたバージョン:
        1.3
        関連項目:
        Action
      • 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の互換性のために用意されています。
        戻り値:
        メニューの項目数を表す整数
        関連項目:
        getMenuComponentCount()
      • isTearOff

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

        public void remove​(JMenuItem item)
        このメニューから指定されたメニュー項目を削除します。 ポップアップ・メニューがない場合は、このメソッドは無効です。
        パラメータ:
        item - メニューから削除するJMenuItem
      • 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リスナーが存在する場合
        関連項目:
        EventListenerList
      • fireMenuDeselected

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

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

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

        public void menuSelectionChanged​(boolean isIncluded)
        このメニューをアクティブにするか、アクティブではなくするためにメニュー・バーの選択が変更されたときに、メッセージを送ります。 JMenuItem.menuSelectionChangedをオーバーライドします。
        定義:
        menuSelectionChanged 、インタフェース: MenuElement
        オーバーライド:
        menuSelectionChanged 、クラス:  JMenuItem
        パラメータ:
        isIncluded - このメニューがアクティブな場合はtrue、そうでない場合はfalse
        関連項目:
        MenuSelectionManager.setSelectedPath(MenuElement[])
      • 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
      • setAccelerator

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