- java.lang.Object
-
- javafx.stage.Window
-
- javafx.stage.PopupWindow
-
- javafx.scene.control.PopupControl
-
- javafx.scene.control.ContextMenu
-
- すべての実装されたインタフェース:
Styleable
,EventTarget
,Skinnable
@IDProperty("id") public class ContextMenu extends PopupControl
メニュー・アイテムのObservableListを含むポップアップ・コントロール。
items
ObservableListには任意のMenuItem
タイプを挿入でき、そのサブクラスであるMenu
、MenuItem
、RadioMenuItem
、CheckMenuItem
およびCustomMenuItem
も含めることができます。 任意のノードをメニューに挿入する必要がある場合、CustomMenuItemを使用できます。 この一般的なルールの1つの例外は、SeparatorMenuItem
をセパレータの挿入に使用できることです。このクラスの一般的なユースケースは、コンテキスト・メニューを作成してユーザーに表示することです。 ContextMenuを使用してコンテキスト・メニューを作成するには、次の手順を実行します。
final ContextMenu contextMenu = new ContextMenu(); contextMenu.setOnShowing(new EventHandler<WindowEvent>() { public void handle(WindowEvent e) { System.out.println("showing"); } }); contextMenu.setOnShown(new EventHandler<WindowEvent>() { public void handle(WindowEvent e) { System.out.println("shown"); } }); MenuItem item1 = new MenuItem("About"); item1.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { System.out.println("About"); } }); MenuItem item2 = new MenuItem("Preferences"); item2.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { System.out.println("Preferences"); } }); contextMenu.getItems().addAll(item1, item2); final TextField textField = new TextField("Type Something"); textField.setContextMenu(contextMenu);
Control.setContextMenu(javafx.scene.control.ContextMenu)
コンビニエンス・メソッドを使用すると、任意のコントロールにコンテキスト・メニューを設定できます。 前述の例では、コンテキスト・メニューがテキスト・フィールドの右Side
に表示されます。 また、次のように、コントロールにイベント・ハンドラを設定して、コンテキスト・メニューを起動することもできます。textField.setOnAction(new EventHandler<ActionEvent>() { public void handle(ActionEvent e) { contextMenu.show(textField, Side.BOTTOM, 0, 0); } }); Group root = (Group) scene.getRoot(); root.getChildren().add(textField);
この例では、ユーザーが
Button
をクリックすると、コンテキスト・メニューが表示されます(このためには、前述の手順を実行するのではなく、MenuButton
コントロールを使用する必要があります)。前述のコード・サンプルに使用されているshow関数を使用すると、ContextMenuがテキスト・フィールドの真下に表示されることに注意してください。
Side
を変えると、想定どおりの結果を得ることができます。
-
-
プロパティのサマリー
プロパティ Type プロパティ 説明 ObjectProperty<EventHandler<ActionEvent>>
onAction
このContextMenu
内に含まれるアイテムがアクティブ化されると通知されるコールバック関数。-
クラス javafx.scene.control.PopupControlから継承されたプロパティ
id、maxHeight、maxWidth、minHeight、minWidth、prefHeight、prefWidth、skin、style
-
クラス javafx.stage.PopupWindowから継承されたプロパティ
anchorLocation、anchorX、anchorY、autoFix、autoHide、consumeAutoHidingEvents、hideOnEscape、onAutoHide、ownerNode、ownerWindow
-
クラス javafx.stage.Windowから継承されたプロパティ
eventDispatcher, focused, forceIntegerRenderScale, height, onCloseRequest, onHidden, onHiding, onShowing, onShown, opacity, outputScaleX, outputScaleY, renderScaleX, renderScaleY, scene, showing, width, x, y
-
-
ネストされたクラスのサマリー
-
クラス javafx.scene.control.PopupControlから継承されたネストされたクラス/インタフェース
PopupControl.CSSBridge
-
クラス javafx.stage.PopupWindowから継承されたネストされたクラス/インタフェース
PopupWindow.AnchorLocation
-
-
フィールドのサマリー
-
クラス javafx.scene.control.PopupControlから継承されたフィールド
bridge、USE_COMPUTED_SIZE、USE_PREF_SIZE
-
-
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 ContextMenu()
新しいContextMenuを作成します。ContextMenu(MenuItem... items)
特定のアイテムで初期化された新しいContextMenuを作成します。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 具象メソッド 修飾子と型 メソッド 説明 protected Skin<?>
createDefaultSkin()
このコントロールのデフォルト・スキンの新しいインスタンスを作成します。ObservableList<MenuItem>
getItems()
コンテキスト・メニューのメニュー・アイテム。EventHandler<ActionEvent>
getOnAction()
プロパティonActionの値を取得します。void
hide()
この関数が呼び出されたときにContextMenu
が表示されていたと想定し、このContextMenu
および表示可能なサブメニューを非表示にします。ObjectProperty<EventHandler<ActionEvent>>
onActionProperty()
このContextMenu
内に含まれるアイテムがアクティブ化されると通知されるコールバック関数。void
setOnAction(EventHandler<ActionEvent> value)
プロパティonActionの値を設定します。void
show(Node anchor, double screenX, double screenY)
指定された画面座標にContextMenu
を表示します。void
show(Node anchor, Side side, double dx, double dy)
hpos
およびvpos
パラメータで指定された側と、x軸およびy軸それぞれの特定のdx
およびdy
値によるオフセットに基づいて、特定のアンカー・ノードに対して相対的にContextMenu
を表示します。-
クラス java.lang.Objectから継承されたメソッド
clone、equals、finalize、getClass、hashCode、notify、notifyAll、toString、wait、wait、wait
-
クラス javafx.scene.control.PopupControlから継承されたメソッド
getClassCssMetaData, getCssMetaData, getId, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getPrefHeight, getPrefWidth, getPseudoClassStates, getSkin, getStyle, getStyleableNode, getStyleableParent, getStyleClass, getTypeSelector, idProperty, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, pseudoClassStateChanged, setId, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setPrefHeight, setPrefSize, setPrefWidth, setSkin, setStyle, skinProperty, styleProperty
-
クラス javafx.stage.PopupWindowから継承されたメソッド
anchorLocationProperty、anchorXProperty、anchorYProperty、autoFixProperty、autoHideProperty、consumeAutoHidingEventsProperty、getAnchorLocation、getAnchorX、getAnchorY、getConsumeAutoHidingEvents、getOnAutoHide、getOwnerNode、getOwnerWindow、hideOnEscapeProperty、isAutoFix、isAutoHide、isHideOnEscape、onAutoHideProperty、ownerNodeProperty、ownerWindowProperty、setAnchorLocation、setAnchorX、setAnchorY、setAutoFix、setAutoHide、setConsumeAutoHidingEvents、setHideOnEscape、setOnAutoHide、setScene、show、show
-
クラス javafx.stage.Windowから継承されたメソッド
addEventFilter, addEventHandler, buildEventDispatchChain, centerOnScreen, eventDispatcherProperty, fireEvent, focusedProperty, forceIntegerRenderScaleProperty, getEventDispatcher, getHeight, getOnCloseRequest, getOnHidden, getOnHiding, getOnShowing, getOnShown, getOpacity, getOutputScaleX, getOutputScaleY, getProperties, getRenderScaleX, getRenderScaleY, getScene, getUserData, getWidth, getWindows, getX, getY, hasProperties, heightProperty, isFocused, isForceIntegerRenderScale, isShowing, onCloseRequestProperty, onHiddenProperty, onHidingProperty, onShowingProperty, onShownProperty, opacityProperty, outputScaleXProperty, outputScaleYProperty, removeEventFilter, removeEventHandler, renderScaleXProperty, renderScaleYProperty, requestFocus, sceneProperty, setEventDispatcher, setEventHandler, setForceIntegerRenderScale, setHeight, setOnCloseRequest, setOnHidden, setOnHiding, setOnShowing, setOnShown, setOpacity, setRenderScaleX, setRenderScaleY, setUserData, setWidth, setX, setY, show, showingProperty, sizeToScene, widthProperty, xProperty, yProperty
-
-
-
-
プロパティの詳細
-
onAction
public final ObjectProperty<EventHandler<ActionEvent>> onActionProperty
このContextMenu
内に含まれるアイテムがアクティブ化されると通知されるコールバック関数。 現在の実装はすべての親メニューも通知するため、イベントのためにすべてのサブメニューをリスニングする必要はありません。
-
-
コンストラクタの詳細
-
ContextMenu
public ContextMenu()
新しいContextMenuを作成します。
-
ContextMenu
public ContextMenu(MenuItem... items)
特定のアイテムで初期化された新しいContextMenuを作成します。- パラメータ:
items
- メニュー・アイテムのリスト
-
-
メソッドの詳細
-
setOnAction
public final void setOnAction(EventHandler<ActionEvent> value)
プロパティonActionの値を設定します。- プロパティの説明:
- この
ContextMenu
内に含まれるアイテムがアクティブ化されると通知されるコールバック関数。 現在の実装はすべての親メニューも通知するため、イベントのためにすべてのサブメニューをリスニングする必要はありません。
-
getOnAction
public final EventHandler<ActionEvent> getOnAction()
プロパティonActionの値を取得します。- プロパティの説明:
- この
ContextMenu
内に含まれるアイテムがアクティブ化されると通知されるコールバック関数。 現在の実装はすべての親メニューも通知するため、イベントのためにすべてのサブメニューをリスニングする必要はありません。
-
onActionProperty
public final ObjectProperty<EventHandler<ActionEvent>> onActionProperty()
このContextMenu
内に含まれるアイテムがアクティブ化されると通知されるコールバック関数。 現在の実装はすべての親メニューも通知するため、イベントのためにすべてのサブメニューをリスニングする必要はありません。
-
getItems
public final ObservableList<MenuItem> getItems()
コンテキスト・メニューのメニュー・アイテム。 このObservableListが実行時に変更された場合、ContextMenuは想定どおりに更新されます。- 戻り値:
- このコンテキスト・メニューのメニュー・アイテム
- 関連項目:
MenuItem
-
show
public void show(Node anchor, Side side, double dx, double dy)
hpos
およびvpos
パラメータで指定された側と、x軸およびy軸それぞれの特定のdx
およびdy
値によるオフセットに基づいて、特定のアンカー・ノードに対して相対的にContextMenu
を表示します。 十分な領域がない場合、メニューは反対側に移動し、オフセットは適用されません。hpos
パラメータおよびvpos
パラメータの目的を明確にするには、これらがアンカー・ノードに対して相対的であることを考慮します。 したがって、CENTER
のhpos
およびvpos
は、ContextMenuがアンカーの上に表示され、ContextMenu
の(0,0)位置がアンカーの(0,0)に配置されることを表します。 右のhpos
はContextMenu
をシフトして、その左上(0,0)位置がアンカーの右上位置にアタッチされるようにします。この関数は、親ノードに対して相対的にメニューの位置を微調整し、詳細に位置合せする場合に便利です。
- パラメータ:
anchor
- アンカー・ノードside
- サイドdx
- x軸のdx値dy
- y軸のdy値
-
show
public void show(Node anchor, double screenX, double screenY)
指定された画面座標にContextMenu
を表示します。 指定された場所に、サイズ要件のあるContextMenu
を表示するための十分な領域がない場合は、ContextMenu
を画面に戻すために必要な調整が行われます。 また、このことは、ContextMenu
が複数のモニターにまたがらないことも意味します。- オーバーライド:
show
、クラス:PopupWindow
- パラメータ:
anchor
- アンカー・ノードscreenX
- 画面座標におけるアンカーのx位置screenY
- 画面座標におけるアンカーのy位置
-
hide
public void hide()
この関数が呼び出されたときにContextMenu
が表示されていたと想定し、このContextMenu
および表示可能なサブメニューを非表示にします。この
ContextMenu
が表示されていない場合は、何も実行されません。- オーバーライド:
hide
、クラス:PopupWindow
-
createDefaultSkin
protected Skin<?> createDefaultSkin()
このコントロールのデフォルト・スキンの新しいインスタンスを作成します。 これは、CSS-fx-skin
を介してスキンが提供されていない場合にコントロール用のスキンを作成するために、またはsetSkin(...)
を使用してサブクラスで明示的に設定するために呼び出されます。- オーバーライド:
createDefaultSkin
、クラス:PopupControl
- 戻り値:
- このコントロールのデフォルト・スキンの新しいインスタンス。 nullの場合、コントロールにはスキンがありません(Cssで提供されている場合を除く)。
-
-