Класс ContextMenu
- Все реализованные интерфейсы:
-
Styleable,EventTarget,Skinnable
@IDProperty("id") public class ContextMenu extends PopupControl Появится контрол, содержащий список элементов меню ObservableList. items ObservableList позволяет вставлять любые элементы типа MenuItem, включая его подклассы Menu, MenuItem, RadioMenuItem, CheckMenuItem и CustomMenuItem. Если необходимо вставить произвольный узел в меню, можно использовать CustomMenuItem. Единственным исключением из этого общего правила является то, что можно использовать 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. В качестве альтернативы, обработчик событий также может быть установлен на элементе управления для вызова контекстного меню, как показано ниже.
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 непосредственно под TextField. Можно изменить Side, чтобы получить ожидаемые результаты.
- С момента:
- JavaFX 2.0
- См. также:
Краткое описание вложенных классов
Вложенные классы/интерфейсы, объявленные в классе javafx.scene.control.PopupControl
PopupControl.CSSBridge
Вложенные классы/интерфейсы, объявленные в классе javafx.stage.PopupWindow
PopupWindow.AnchorLocation
Краткое описание свойств
| Тип | Свойство | Описание |
|---|---|---|
final ObjectProperty |
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
bridge, USE_COMPUTED_SIZE, USE_PREF_SIZE
Краткое описание конструкторов
| Конструктор | Описание |
|---|---|
ContextMenu() |
Создать новое ContextMenu |
ContextMenu |
Создать новое ContextMenu, инициализированное заданными элементами |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
final ObservableList |
getItems() |
Элементы меню в контекстном меню. |
final EventHandler |
getOnAction() |
Получает значение свойства onAction. |
void |
hide() |
Скрывает это ContextMenu и любые видимые подменю, предполагая, что при вызове этой функции ContextMenu было отображено. |
final ObjectProperty |
onActionProperty() |
Функция обратного вызова, которая уведомляет о том, что элемент внутри этого ContextMenu был активирован. |
final void |
setOnAction |
Устанавливает значение свойства onAction. |
void |
show |
Отображает ContextMenu в указанных координатах экрана. |
void |
show |
Отображает ContextMenu относительно заданного узла якоря, со стороны, указанной параметром side, и смещенной на заданные значения dx и dy для осей X и Y соответственно. |
Методы, объявленные в классе javafx.scene.control.PopupControl
createDefaultSkin, getClassCssMetaData, getCssMetaData, getId, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getPrefHeight, getPrefWidth, getPseudoClassStates, getSkin, getStyle, 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
Методы, объявленные в классе java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Методы, объявленные в интерфейсе javafx.css.Styleable
getStyleableNode
Подробное описание свойств
onAction
public final ObjectProperty<EventHandler<ActionEvent>> onActionProperty
ContextMenu, активирован. Текущая реализация также уведомляет все родительские меню, поэтому нет необходимости прослушивать все подменю для событий.- См. также:
Подробное описание конструкторов
ContextMenu
public ContextMenu()
ContextMenu
public ContextMenu(MenuItem... items)
- Параметры:
-
items- список элементов меню
Подробное описание методов
setOnAction
public final void setOnAction(EventHandler<ActionEvent> value)
onAction.- Описание свойства:
- Функция обратного вызова, которая уведомляется, когда элемент, содержащийся в этом
ContextMenu, активирован. Текущая реализация также уведомляет все родительские меню, поэтому нет необходимости прослушивать все подменю для событий. - Параметры:
-
value- значение свойстваonAction - См. также:
getOnAction
public final EventHandler<ActionEvent> getOnAction()
onAction.- Описание свойства:
- Функция обратного вызова, которая уведомляется, когда элемент, содержащийся в этом
ContextMenu, активирован. Текущая реализация также уведомляет все родительские меню, поэтому нет необходимости прослушивать все подменю для событий. - Возвращает:
- значение свойства
onAction - См. также:
onActionProperty
public final ObjectProperty<EventHandler<ActionEvent>> onActionProperty()
ContextMenu, активирован. Текущая реализация также уведомляет все родительские меню, поэтому нет необходимости прослушивать все подменю для событий.- Возвращает:
- свойство
onAction - См. также:
getItems
public final ObservableList<MenuItem> getItems()
- Возвращает:
- элементы меню в этом контекстном меню
- См. также:
show
public void show(Node anchor, Side side, double dx, double dy)
ContextMenu относительно заданного узла-якоря, со стороны, указанной параметром side, и смещенным на заданные значения dx и dy для осей x и y соответственно. Если места недостаточно, меню перемещается на противоположную сторону, а смещение не применяется. Для ясности назначения параметра side, обратите внимание, что он относится к узлу-якорю. Таким образом, side значения TOP означало бы, что нижний левый угол контекстного меню установлен в верхний левый угол якоря.
Эта функция полезна для точной настройки позиции меню относительно родительского узла, чтобы обеспечить близкое выравнивание.
- Параметры:
-
anchor- узел-якорь -
side- сторона -
dx- значение dx для оси x -
dy- значение dy для оси y
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
© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.