Spec-Zone.ru › OpenJavaFX 8
javafx.scene.control

Класс ContextMenu

java.lang.Object
  • javafx.stage.Window
    • javafx.stage.PopupWindow
      • javafx.scene.control.PopupControl
        • javafx.scene.control.ContextMenu

Все реализованные интерфейсы:

Styleable, EventTarget, Skinnable



@IDProperty(value="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, используемая в приведённом примере, выведет контекстное меню непосредственно под TextField. Вы можете изменить Side для получения нужного результата.

С:

JavaFX 2.0

См. также:

MenuItem, Menu

  • Краткое описание свойств

    Все методыМетоды экземпляраМетоды конкретного класса
    Тип Свойство и описание
    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, height, onCloseRequest, onHidden, onHiding, onShowing, onShown, opacity, 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)
    Показать ContextMenu относительно заданного узла-якоря, со стороны, указанной параметрами hpos и vpos, и смещённым на заданные значения dx и dy соответственно для осей X и Y.
    • Методы, унаследованные от класса javafx.scene.control.PopupControl

      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, getEventDispatcher, getHeight, getOnCloseRequest, getOnHidden, getOnHiding, getOnShowing, getOnShown, getOpacity, getProperties, getScene, getUserData, getWidth, getX, getY, hasProperties, heightProperty, isFocused, isShowing, onCloseRequestProperty, onHiddenProperty, onHidingProperty, onShowingProperty, onShownProperty, opacityProperty, removeEventFilter, removeEventHandler, requestFocus, sceneProperty, setEventDispatcher, setEventHandler, setHeight, setOnCloseRequest, setOnHidden, setOnHiding, setOnShowing, setOnShown, setOpacity, setUserData, setWidth, setX, setY, show, showingProperty, sizeToScene, widthProperty, xProperty, yProperty
    • Методы, унаследованные от класса java.lang.Object

      clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Подробное описание свойства

    • onAction

      public final ObjectProperty<EventHandler<ActionEvent>> onActionProperty
      Функция обратного вызова, которая уведомляется, когда элемент, содержащийся в этом ContextMenu, активирован. Текущая реализация также уведомляет все родительские меню, поэтому нет необходимости прослушивать все подменю для событий.

      См. также:

      getOnAction(), setOnAction(EventHandler)

  • Подробное описание конструктора

    • ContextMenu

      public ContextMenu()
      Создаёт новое контекстное меню
    • ContextMenu

      public ContextMenu(MenuItem... 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, активирован. Текущая реализация также уведомляет все родительские меню, поэтому нет необходимости прослушивать все подменю для событий.

      См. также:

      getOnAction(), setOnAction(EventHandler)

    • getItems

      public final ObservableList<MenuItem> getItems()
      Элементы меню в контекстном меню. Если эта ObservableList модифицируется во время выполнения, контекстное меню будет обновляться как ожидается.

      См. также:

      MenuItem

    • show

      public void show(Node anchor,
                       Side side,
                       double dx,
                       double dy)
      Отображает ContextMenu относительно заданного узла якоря, со стороны, указанной параметрами hpos и vpos, и смещённый на заданные значения dx и dy соответственно по осям x и y. Если места недостаточно, меню перемещается на противоположную сторону, и смещение не применяется.

      Для уточнения назначения параметров hpos и vpos следует учитывать, что они относятся к узлу якоря. Таким образом, hpos и vpos значения CENTER означают, что контекстное меню отображается поверх якоря, при этом положение (0,0) ContextMenu расположено в (0,0) якоря. Значение hpos справа сдвинет ContextMenu таким образом, что его положение верхний левый угол (0,0) будет прикреплено к верхнему правому углу якоря.

      Эта функция полезна для точной настройки позиции меню относительно родительского узла, чтобы обеспечить близкое выравнивание.

    • show

      public void show(Node anchor,
                       double screenX,
                       double screenY)
      Отображает ContextMenu в указанных координатах экрана. Если в указанном месте недостаточно места для отображения ContextMenu, учитывая его размер, производятся необходимые корректировки, чтобы разместить ContextMenu на экране. Это также означает, что ContextMenu не будет охватывать несколько мониторов.

      Переопределяет:

      show в классе PopupWindow

      Параметры:

      anchor - Узел-владелец всплывающего окна. Он не должен быть null и должен быть связан с окном.

    • hide

      public void hide()
      Скрывает это ContextMenu и любые видимые подменю, предполагая, что когда эта функция вызвана, ContextMenu отображалось.

      Если это ContextMenu не отображается, то ничего не происходит.

      Переопределяет:

      hide в классе PopupWindow

    • createDefaultSkin

      protected Skin<?> createDefaultSkin()
      Создаёт новый экземпляр стандартной темы для этого элемента управления. Это вызывается для создания темы для элемента управления, если тема не предоставлена через CSS -fx-skin или не установлена явно в подклассе с помощью setSkin(...).

      Переопределяет:

      createDefaultSkin в классе PopupControl

      Возвращает:

      новый экземпляр стандартной темы для этого элемента управления. Если null, то у элемента управления не будет темы, если она не предоставлена css.

© 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.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API