モジュール 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オブジェクト
    • setUI

      @BeanProperty(hidden=true, visualUpdate=true, description="The UI object that implements the Component\'s LookAndFeel.")public void setUI​(PopupMenuUI ui)
      このコンポーネントを描画するL&Fオブジェクトを設定します。
      パラメータ:
      ui - 新規PopupMenuUI L&Fオブジェクト
      関連項目:
      UIDefaults.getUI(javax.swing.JComponent)
    • updateUI

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

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

      protected void processKeyEvent​(KeyEvent evt)
      ニーモニックやアクセラレータなどの、キー・ストローク・イベントを処理します。
      オーバーライド:
      processKeyEvent 、クラス:  JComponent
      パラメータ:
      evt - 処理されるキー・イベント
      関連項目:
      KeyEvent, KeyListener, KeyboardFocusManager, DefaultKeyboardFocusManager, Component.processEvent(java.awt.AWTEvent), Component.dispatchEvent(java.awt.AWTEvent), Component.addKeyListener(java.awt.event.KeyListener), Component.enableEvents(long), Component.isShowing()
    • getSelectionModel

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

      @BeanProperty(bound=false, expert=true, description="The selection model for the popup menu")public void setSelectionModel​(SingleSelectionModel model)
      単一の選択を扱うモデル・オブジェクトを設定します。
      パラメータ:
      model - 新しいSingleSelectionModel
      関連項目:
      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
    • remove

      public void remove​(int pos)
      指定されたインデックスにあるコンポーネントをこのポップアップ・メニューから削除します。
      オーバーライド:
      remove、クラス: Container
      パラメータ:
      pos - 削除される項目の位置
      例外:
      IllegalArgumentException - posの値が0より小さいか、posの値がメニュー項目の数より大きい場合
      関連項目:
      Container.add(java.awt.Component), Container.invalidate(), Container.validate(), Container.getComponentCount()
    • 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()
      コンテナをレイアウトして、内容の表示に最小限の空間を使用するようにします。
    • setVisible

      @BeanProperty(description="Makes the popup visible")public void setVisible​(boolean b)
      ポップアップ・メニューの可視性を設定します。
      オーバーライド:
      setVisible 、クラス:  JComponent
      パラメータ:
      b - ポップアップを可視にする場合はtrue、隠す場合はfalse
      関連項目:
      Component.isVisible(), Component.invalidate()
    • 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

      @Deprecatedpublic 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()
    • paintBorder

      protected void paintBorder​(Graphics g)
      borderPaintedプロパティがtrueである場合に、ポップアップ・メニューのボーダーをペイントします。
      オーバーライド:
      paintBorder 、クラス:  JComponent
      パラメータ:
      g - Graphicsオブジェクト
      関連項目:
      JComponent.paint(java.awt.Graphics), JComponent.setBorder(javax.swing.border.Border)
    • 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
    • processMouseEvent

      public void processMouseEvent​(MouseEvent event, MenuElement[] path, MenuSelectionManager manager)
      このメソッドはMenuElementインタフェースに適合するために必要ですが、実装されていません。
      定義:
      processMouseEvent 、インタフェース: MenuElement
      パラメータ:
      event - 処理されるMouseEvent
      path - メニュー階層内の受信要素のパス
      manager - メニュー階層のMenuSelectionManager
      関連項目:
      MenuElement.processMouseEvent(MouseEvent, MenuElement[], MenuSelectionManager)
    • processKeyEvent

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

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

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

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

      public Component getComponent()
      このJPopupMenuコンポーネントを返します。
      定義:
      getComponent 、インタフェース: MenuElement
      戻り値:
      このJPopupMenuオブジェクト
      関連項目:
      MenuElement.getComponent()
    • isPopupTrigger

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