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

クラスJPopupMenu

  • すべての実装されたインタフェース:
    ImageObserver, MenuContainer, Serializable, Accessible, MenuElement
    直系の既知のサブクラス:
    BasicComboPopup

    @JavaBean(defaultProperty="UI",
              description="A small window that pops up and displays a series of choices.")
    public class JPopupMenu
    extends JComponent
    implements Accessible, MenuElement
    ポップアップ・メニュー(一連の選択肢をポップアップおよび表示する小さなウィンドウ)の実装です。 JPopupMenuは、メニュー・バー上の項目が選択されたときに表示するメニューに使用します。 また、選択したメニュー項目によっては表示されることもある、プルライト・メニューにも使用されます。 あるいは、メニューを表示するほかの場所(メニュー・バー以外の場所)でも、JPopupMenuを使用できます。 たとえば、特定の場所で右クリックが発生した場合のポップアップ・メニュー表示(ショートカット・メニュー)などです。

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

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

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

    導入されたバージョン:
    1.2
    • コンストラクタの詳細

      • JPopupMenu

        public JPopupMenu()
        呼出しコンポーネントの定義なしでJPopupMenuを構築します。
      • JPopupMenu

        public JPopupMenu​(String label)
        指定されたタイトルを使用してJPopupMenuを構築します。
        パラメータ:
        label - ポップアップ・メニューのタイトルとしてUIが使用できる文字列。
    • メソッドの詳細

      • setDefaultLightWeightPopupEnabled

        public static void setDefaultLightWeightPopupEnabled​(boolean aFlag)
        lightWeightPopupEnabledプロパティのデフォルト値を設定します。
        パラメータ:
        aFlag - ポップアップが軽量の場合はtrue、そうでない場合はfalse
        関連項目:
        getDefaultLightWeightPopupEnabled(), setLightWeightPopupEnabled(boolean)
      • getDefaultLightWeightPopupEnabled

        public static boolean getDefaultLightWeightPopupEnabled()
        defaultLightWeightPopupEnabledプロパティを取得します。デフォルトではtrueです。
        戻り値:
        defaultLightWeightPopupEnabledプロパティの値
        関連項目:
        setDefaultLightWeightPopupEnabled(boolean)
      • getUI

        public PopupMenuUI getUI()
        このコンポーネントを描画するルック・アンド・フィール (L&F)オブジェクトを返します。
        オーバーライド:
        クラスJComponentgetUI
        戻り値:
        このコンポーネントをレンダリングするPopupMenuUIオブジェクト
      • updateUI

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

        public SingleSelectionModel getSelectionModel()
        単一の選択を扱うモデル・オブジェクトを返します。
        戻り値:
        selectionModelプロパティ
        関連項目:
        SingleSelectionModel
      • add

        public JMenuItem add​(JMenuItem menuItem)
        指定されたメニュー項目をメニューの末尾に追加します。
        パラメータ:
        menuItem - 追加するJMenuItem
        戻り値:
        追加されたJMenuItem
      • add

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

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

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

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

        @BeanProperty(bound=false,
                      expert=true,
                      description="Determines whether lightweight popups are used when possible")
        public void setLightWeightPopupEnabled​(boolean aFlag)
        lightWeightPopupEnabledプロパティの値を設定します。デフォルトではtrueです。 ルック・アンド・フィールがポップアップを表示するとき、デフォルトでは軽量(Java共通言語)ポップアップの使用を選択できます。 軽量ポップアップ・ウィンドウは重量(ネイティブ・ピア)ウィンドウよりも効率的ですが、軽量コンポーネントと重量コンポーネントはGUI内でうまく混在しません。 アプリケーションで軽量コンポーネントと重量コンポーネントが混在している場合は、軽量ポップアップを無効にする必要があります。 一部のルック・アンド・フィールでは、このプロパティの値に関係なく常に重量ポップアップが使用されることがあります。
        パラメータ:
        aFlag - 軽量ポップアップを無効にする場合はfalse
        関連項目:
        isLightWeightPopupEnabled()
      • isLightWeightPopupEnabled

        public boolean isLightWeightPopupEnabled()
        lightWeightPopupEnabledプロパティを取得します。
        戻り値:
        lightWeightPopupEnabledプロパティの値
        関連項目:
        setLightWeightPopupEnabled(boolean)
      • getLabel

        public String getLabel()
        ポップアップ・メニューのラベルを返します。
        戻り値:
        ポップアップ・メニューのラベルが格納されている文字列
        関連項目:
        setLabel(java.lang.String)
      • setLabel

        @BeanProperty(description="The label for the popup menu.")
        public void setLabel​(String label)
        ポップアップ・メニューのラベルを設定します。 ルック・アンド・フィールの実装ごとに、ラベルを表示するかどうかを選択してもかまいません。
        パラメータ:
        label - ポップアップ・メニューのラベルを指定する文字列
        関連項目:
        setLabel(java.lang.String)
      • addSeparator

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

        public void insert​(Action a,
                           int index)
        指定されたActionオブジェクトを、メニュー項目として指定の位置に挿入します。
        パラメータ:
        a - 挿入するActionオブジェクト
        index - Actionを挿入する位置。0はメニューの先頭
        例外:
        IllegalArgumentException - indexが0未満の場合
        関連項目:
        Action
      • insert

        public void insert​(Component component,
                           int index)
        指定されたコンポーネントを、メニューの指定された位置に挿入します。
        パラメータ:
        component - 挿入するComponent
        index - コンポーネントを挿入する位置。0はメニューの先頭
        例外:
        IllegalArgumentException - indexが0未満の場合
      • addPopupMenuListener

        public void addPopupMenuListener​(PopupMenuListener l)
        PopupMenuリスナーを追加します。
        パラメータ:
        l - 追加するPopupMenuListener
      • removePopupMenuListener

        public void removePopupMenuListener​(PopupMenuListener l)
        PopupMenuリスナーを削除します。
        パラメータ:
        l - 削除するPopupMenuListener
      • getPopupMenuListeners

        @BeanProperty(bound=false)
        public PopupMenuListener[] getPopupMenuListeners()
        addPopupMenuListener()を使用してこのJMenuItemに追加されたすべてのPopupMenuListenerの配列を返します。
        戻り値:
        追加されたすべてのPopupMenuListener。リスナーが追加されていない場合は空の配列
        導入されたバージョン:
        1.4
      • addMenuKeyListener

        public void addMenuKeyListener​(MenuKeyListener l)
        ポップアップ・メニューにMenuKeyListenerを追加します。
        パラメータ:
        l - 追加されるMenuKeyListener
        導入されたバージョン:
        1.5
      • removeMenuKeyListener

        public void removeMenuKeyListener​(MenuKeyListener l)
        ポップアップ・メニューからMenuKeyListenerを削除します。
        パラメータ:
        l - 削除するMenuKeyListener
        導入されたバージョン:
        1.5
      • getMenuKeyListeners

        @BeanProperty(bound=false)
        public MenuKeyListener[] getMenuKeyListeners()
        addMenuKeyListener()を使用してこのJPopupMenuに追加されたすべてのMenuKeyListenerの配列を返します。
        戻り値:
        追加されたすべてのMenuKeyListener。リスナーが追加されていない場合は空の配列
        導入されたバージョン:
        1.5
      • firePopupMenuWillBecomeVisible

        protected void firePopupMenuWillBecomeVisible()
        PopupMenuListenerに、このポップアップ・メニューが可視になることを通知します。
      • firePopupMenuWillBecomeInvisible

        protected void firePopupMenuWillBecomeInvisible()
        PopupMenuListenerに、このポップアップ・メニューが不可視になることを通知します。
      • firePopupMenuCanceled

        protected void firePopupMenuCanceled()
        PopupMenuListenersに、このポップアップ・メニューが取り消されたことを通知します。
      • pack

        public void pack()
        コンテナをレイアウトして、内容の表示に最小限の空間を使用するようにします。
      • isVisible

        public boolean isVisible()
        ポップアップ・メニューが可視(現在表示中)である場合にtrueを返します。
        オーバーライド:
        isVisible 、クラス:  Component
        戻り値:
        コンポーネントが可視の場合はtrue、そうでない場合はfalse
        関連項目:
        Component.setVisible(boolean)
      • setLocation

        @BeanProperty(description="The location of the popup menu.")
        public void setLocation​(int x,
                                int y)
        x、y座標を使って、ポップアップ・メニューの左上隅の位置を設定します。

        このメソッドは、幾何学的図形に関連するデータを変更します。 そのため、JPopupMenuオブジェクトがデスクトップ設定に厳密に対応する方法で配置およびサイズ設定されるように、ネイティブ・ウィンドウ管理システムはこのような要求を無視するか、または要求されたデータを変更する可能性があります。

        オーバーライド:
        setLocation 、クラス:  Component
        パラメータ:
        x - 画面の座標空間でのポップアップ・メニューの新しい位置のx座標
        y - 画面の座標空間でのポップアップ・メニューの新しい位置のy座標
        関連項目:
        Component.getLocation(), Component.setBounds(int, int, int, int), Component.invalidate()
      • getInvoker

        public Component getInvoker()
        このポップアップ・メニューの呼出し側であるコンポーネントを返します。
        戻り値:
        ポップアップ・メニューが表示されるComponent
      • setInvoker

        @BeanProperty(bound=false,
                      expert=true,
                      description="The invoking component for the popup menu")
        public void setInvoker​(Component invoker)
        ポップアップ・メニューの呼出し側、すなわち、ポップアップ・メニュー項目が表示されるコンポーネントを設定します。
        パラメータ:
        invoker - ポップアップ・メニューが表示されるComponent
      • show

        public void show​(Component invoker,
                         int x,
                         int y)
        呼出しコンポーネント内のx、y座標で指定された位置に、ポップアップ・メニューを表示します。
        パラメータ:
        invoker - ポップアップ・メニューが表示されるコンポーネント
        x - ポップアップ・メニューを表示する呼出しコンポーネントの座標空間でのx座標
        y - ポップアップ・メニューを表示する呼出しコンポーネントの座標空間でのy座標
      • getComponentAtIndex

        @Deprecated
        public Component getComponentAtIndex​(int i)
        非推奨。
        Container.getComponent(int)に置き換えられています
        指定されたインデックスの要素を返します。
        パラメータ:
        i - コンポーネントのインデックス。0が先頭
        戻り値:
        指定されたインデックスのComponent
      • getComponentIndex

        public int getComponentIndex​(Component c)
        指定されたコンポーネントのインデックスを返します。
        パラメータ:
        c - 検索対象のComponent
        戻り値:
        コンポーネントのインデックス。0が先頭。コンポーネントがなければ -1
      • setPopupSize

        @BeanProperty(description="The size of the popup menu")
        public void setPopupSize​(Dimension d)
        Dimensionオブジェクトを使用して、Popupウィンドウのサイズを設定します。 これは、setPreferredSize(d)と同等です。
        パラメータ:
        d - このコンポーネントの新規サイズを指定するDimension
      • setPopupSize

        @BeanProperty(description="The size of the popup menu")
        public void setPopupSize​(int width,
                                 int height)
        ポップアップ・ウィンドウのサイズを、指定された幅および高さに設定します。 これは、setPreferredSize(new Dimension(width, height))と同等です。
        パラメータ:
        width - Popupの新しい幅(ピクセル単位)
        height - Popupの新しい高さ(ピクセル単位)
      • setSelected

        @BeanProperty(expert=true,
                      hidden=true,
                      description="The selected component on the popup menu")
        public void setSelected​(Component sel)
        現在選択されるコンポーネントを設定します。結果として、選択モデルが変更されます。
        パラメータ:
        sel - 選択するComponent
      • isBorderPainted

        public boolean isBorderPainted()
        ボーダーをペイントするかどうかを調べます。
        戻り値:
        ボーダーをペイントする場合はtrue、そうでない場合はfalse
        関連項目:
        setBorderPainted(boolean)
      • setBorderPainted

        @BeanProperty(bound=false,
                      description="Is the border of the popup menu painted")
        public void setBorderPainted​(boolean b)
        ボーダーをペイントするかどうかを設定します。
        パラメータ:
        b - trueの場合はボーダーがペイントされる。
        関連項目:
        isBorderPainted()
      • getMargin

        @BeanProperty(bound=false)
        public Insets getMargin()
        ポップアップ・メニューのボーダーとコンテナの間にあるマージンを返します(ピクセル単位)。
        戻り値:
        マージン値を保持するInsetsオブジェクト。
      • paramString

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

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

        public void processKeyEvent​(KeyEvent e,
                                    MenuElement[] path,
                                    MenuSelectionManager manager)
        MenuSelectionManagerから転送されるキー・イベントを処理し、必要に応じてMenuSelectionManagerのAPIを使用して、メニュー選択を変更します。

        注: イベントをサブコンポーネントに転送する必要はありません。 MenuSelectionManagerが自動的に行います。

        定義:
        processKeyEvent 、インタフェース: MenuElement
        パラメータ:
        e - aKeyEvent
        path - MenuElementパス配列
        manager - MenuSelectionManager
      • menuSelectionChanged

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

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

        public boolean isPopupTrigger​(MouseEvent e)
        JPopupMenuの現在インストールされているUIがMouseEventをポップアップ・トリガーと見なす場合は、trueを返します。
        パラメータ:
        e - aMouseEvent
        戻り値:
        マウス・イベントがポップアップ・トリガーの場合はtrue
        導入されたバージョン:
        1.3