Spec-Zone.ru › OpenJavaFX 11
Модуль javafx.controls
Пакет 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("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
    См. также:
    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, 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)
    Отображает ContextMenu относительно заданного узла якоря, со стороны, указанной параметрами hpos и vpos, и с заданным dx и dy смещением по оси X и Y соответственно.
    • Методы, унаследованные от класса 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
    • Методы, унаследованные от класса 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)
      Создаёт новое контекстное меню, инициализированное заданными элементами
      Параметры:
      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) будет прикреплён к верхнему правому углу якоря.

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

      Параметры:
      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
    • 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