Module javafx.controls
Package javafx.scene.control

## Class MenuButton

- java.lang.Object
- - javafx.scene.Node
  - - javafx.scene.Parent
    - - javafx.scene.layout.Region
      - - javafx.scene.control.Control
        - - javafx.scene.control.Labeled
          - - javafx.scene.control.ButtonBase
            - - javafx.scene.control.MenuButton

- All Implemented Interfaces:
    `Styleable`, `EventTarget`, `Skinnable`
  Direct Known Subclasses:
    `SplitMenuButton`

      public class MenuButton
      extends ButtonBase

  MenuButton is a button which, when clicked or pressed, will show a `ContextMenu`. A MenuButton shares a very similar API to the `Menu` control, insofar that you set the items that should be shown in the `items` ObservableList, and there is a `text` property to specify the label shown within the MenuButton.

  As mentioned, like the Menu API itself, you'll find an `items` ObservableList within which you can provide anything that extends from `MenuItem`. There are several useful subclasses of `MenuItem` including `RadioMenuItem`, `CheckMenuItem`, `Menu`, `SeparatorMenuItem` and `CustomMenuItem`.

  A MenuButton can be set to show its menu on any side of the button. This is specified using the `popupSide` property. By default the menu appears below the button. However, regardless of the popupSide specified, if there is not enough room, the `ContextMenu` will be smartly repositioned, most probably to be on the opposite side of the MenuButton.

  Example:

       MenuButton m = new MenuButton("Eats");
       m.getItems().addAll(new MenuItem("Burger"), new MenuItem("Hot Dog"));

  MnemonicParsing is enabled by default for MenuButton.

  Since:
    JavaFX 2.0
  See Also:
    `MenuItem`, `Menu`, `SplitMenuButton`

- - ### Property Summary

    Properties
    Type | Property | Description
    --- | --- | ---
    `ObjectProperty<EventHandler<Event>>` | `onHidden` | Called just after the `ContextMenu` has been hidden.
    `ObjectProperty<EventHandler<Event>>` | `onHiding` | Called just prior to the `ContextMenu` being hidden.
    `ObjectProperty<EventHandler<Event>>` | `onShowing` | Called just prior to the `ContextMenu` being shown.
    `ObjectProperty<EventHandler<Event>>` | `onShown` | Called just after the `ContextMenu` is shown.
    `ObjectProperty<Side>` | `popupSide` | Indicates on which side the `ContextMenu` should open in relation to the MenuButton.
    `ReadOnlyBooleanProperty` | `showing` | Indicates whether the `ContextMenu` is currently visible.

    - ### Properties inherited from class javafx.scene.control.ButtonBase

      `armed, onAction`

    - ### Properties inherited from class javafx.scene.control.Labeled

      `alignment, contentDisplay, ellipsisString, font, graphic, graphicTextGap, labelPadding, lineSpacing, mnemonicParsing, textAlignment, textFill, textOverrun, text, underline, wrapText`

    - ### Properties inherited from class javafx.scene.control.Control

      `contextMenu, skin, tooltip`

    - ### Properties inherited from class javafx.scene.layout.Region

      `background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width`

    - ### Properties inherited from class javafx.scene.Parent

      `needsLayout`

    - ### Properties inherited from class javafx.scene.Node

      `accessibleHelp, accessibleRoleDescription, accessibleRole, accessibleText, blendMode, boundsInLocal, boundsInParent, cacheHint, cache, clip, cursor, depthTest, disabled, disable, effectiveNodeOrientation, effect, eventDispatcher, focused, focusTraversable, hover, id, inputMethodRequests, layoutBounds, layoutX, layoutY, localToParentTransform, localToSceneTransform, managed, mouseTransparent, nodeOrientation, onContextMenuRequested, onDragDetected, onDragDone, onDragDropped, onDragEntered, onDragExited, onDragOver, onInputMethodTextChanged, onKeyPressed, onKeyReleased, onKeyTyped, onMouseClicked, onMouseDragEntered, onMouseDragExited, onMouseDragged, onMouseDragOver, onMouseDragReleased, onMouseEntered, onMouseExited, onMouseMoved, onMousePressed, onMouseReleased, onRotate, onRotationFinished, onRotationStarted, onScrollFinished, onScroll, onScrollStarted, onSwipeDown, onSwipeLeft, onSwipeRight, onSwipeUp, onTouchMoved, onTouchPressed, onTouchReleased, onTouchStationary, onZoomFinished, onZoom, onZoomStarted, opacity, parent, pickOnBounds, pressed, rotate, rotationAxis, scaleX, scaleY, scaleZ, scene, style, translateX, translateY, translateZ, viewOrder, visible`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `static EventType<Event>` | `ON_HIDDEN` | Called when the MenuButton popup has been hidden.
    `static EventType<Event>` | `ON_HIDING` | Called when the MenuButton popup will be hidden.
    `static EventType<Event>` | `ON_SHOWING` | Called prior to the MenuButton showing its popup after the user has clicked or otherwise interacted with the MenuButton.
    `static EventType<Event>` | `ON_SHOWN` | Called after the MenuButton has shown its popup.

    - ### Fields inherited from class javafx.scene.layout.Region

      `USE_COMPUTED_SIZE, USE_PREF_SIZE`

    - ### Fields inherited from class javafx.scene.Node

      `BASELINE_OFFSET_SAME_AS_HEIGHT`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MenuButton()` | Creates a new empty menu button.
    `MenuButton​(String text)` | Creates a new empty menu button with the given text to display on the button.
    `MenuButton​(String text, Node graphic)` | Creates a new empty menu button with the given text and graphic to display on the button.
    `MenuButton​(String text, Node graphic, MenuItem... items)` | Creates a new menu button with the given text and graphic to display on the button, and inserts the given items into the `items` list.

  - ### Method Summary

    Modifier and Type | Method | Description
    --- | --- | ---
    `protected Skin<?>` | `createDefaultSkin()` | Create a new instance of the default skin for this control.
    `void` | `executeAccessibleAction​(AccessibleAction action, Object... parameters)` | This method is called by the assistive technology to request the action indicated by the argument should be executed.
    `void` | `fire()` | This has no impact.
    `ObservableList<MenuItem>` | `getItems()` | The items to show within this buttons menu.
    `EventHandler<Event>` | `getOnHidden()` | Gets the value of the property onHidden.
    `EventHandler<Event>` | `getOnHiding()` | Gets the value of the property onHiding.
    `EventHandler<Event>` | `getOnShowing()` | Gets the value of the property onShowing.
    `EventHandler<Event>` | `getOnShown()` | Gets the value of the property onShown.
    `Side` | `getPopupSide()` | Gets the value of the property popupSide.
    `void` | `hide()` | Hides the `ContextMenu`.
    `boolean` | `isShowing()` | Gets the value of the property showing.
    `ObjectProperty<EventHandler<Event>>` | `onHiddenProperty()` | Called just after the `ContextMenu` has been hidden.
    `ObjectProperty<EventHandler<Event>>` | `onHidingProperty()` | Called just prior to the `ContextMenu` being hidden.
    `ObjectProperty<EventHandler<Event>>` | `onShowingProperty()` | Called just prior to the `ContextMenu` being shown.
    `ObjectProperty<EventHandler<Event>>` | `onShownProperty()` | Called just after the `ContextMenu` is shown.
    `ObjectProperty<Side>` | `popupSideProperty()` | Indicates on which side the `ContextMenu` should open in relation to the MenuButton.
    `void` | `setOnHidden​(EventHandler<Event> value)` | Sets the value of the property onHidden.
    `void` | `setOnHiding​(EventHandler<Event> value)` | Sets the value of the property onHiding.
    `void` | `setOnShowing​(EventHandler<Event> value)` | Sets the value of the property onShowing.
    `void` | `setOnShown​(EventHandler<Event> value)` | Sets the value of the property onShown.
    `void` | `setPopupSide​(Side value)` | Sets the value of the property popupSide.
    `void` | `show()` | Shows the `ContextMenu`, assuming this MenuButton is not disabled.
    `ReadOnlyBooleanProperty` | `showingProperty()` | Indicates whether the `ContextMenu` is currently visible.

    - ### Methods inherited from class javafx.scene.control.ButtonBase

      `arm, armedProperty, disarm, getOnAction, isArmed, onActionProperty, setOnAction`

    - ### Methods inherited from class javafx.scene.control.Labeled

      `alignmentProperty, contentDisplayProperty, ellipsisStringProperty, fontProperty, getAlignment, getClassCssMetaData, getContentBias, getContentDisplay, getControlCssMetaData, getEllipsisString, getFont, getGraphic, getGraphicTextGap, getInitialAlignment, getLabelPadding, getLineSpacing, getText, getTextAlignment, getTextFill, getTextOverrun, graphicProperty, graphicTextGapProperty, isMnemonicParsing, isUnderline, isWrapText, labelPaddingProperty, lineSpacingProperty, mnemonicParsingProperty, setAlignment, setContentDisplay, setEllipsisString, setFont, setGraphic, setGraphicTextGap, setLineSpacing, setMnemonicParsing, setText, setTextAlignment, setTextFill, setTextOverrun, setUnderline, setWrapText, textAlignmentProperty, textFillProperty, textOverrunProperty, textProperty, toString, underlineProperty, wrapTextProperty`

    - ### Methods inherited from class javafx.scene.control.Control

      `computeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, getBaselineOffset, getContextMenu, getCssMetaData, getInitialFocusTraversable, getSkin, getTooltip, isResizable, layoutChildren, queryAccessibleAttribute, setContextMenu, setSkin, setTooltip, skinProperty, tooltipProperty`

    - ### Methods inherited from class javafx.scene.layout.Region

      `backgroundProperty, borderProperty, cacheShapeProperty, centerShapeProperty, getBackground, getBorder, getHeight, getInsets, getMaxHeight, getMaxWidth, getMinHeight, getMinWidth, getOpaqueInsets, getPadding, getPrefHeight, getPrefWidth, getShape, getUserAgentStylesheet, getWidth, heightProperty, insetsProperty, isCacheShape, isCenterShape, isScaleShape, isSnapToPixel, layoutInArea, layoutInArea, layoutInArea, layoutInArea, maxHeight, maxHeightProperty, maxWidth, maxWidthProperty, minHeight, minHeightProperty, minWidth, minWidthProperty, opaqueInsetsProperty, paddingProperty, positionInArea, positionInArea, prefHeight, prefHeightProperty, prefWidth, prefWidthProperty, resize, scaleShapeProperty, setBackground, setBorder, setCacheShape, setCenterShape, setHeight, setMaxHeight, setMaxSize, setMaxWidth, setMinHeight, setMinSize, setMinWidth, setOpaqueInsets, setPadding, setPrefHeight, setPrefSize, setPrefWidth, setScaleShape, setShape, setSnapToPixel, setWidth, shapeProperty, snappedBottomInset, snappedLeftInset, snappedRightInset, snappedTopInset, snapPosition, snapPositionX, snapPositionY, snapSize, snapSizeX, snapSizeY, snapSpace, snapSpaceX, snapSpaceY, snapToPixelProperty, widthProperty`

    - ### Methods inherited from class javafx.scene.Parent

      `getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds`

    - ### Methods inherited from class javafx.scene.Node

      `accessibleHelpProperty, accessibleRoleDescriptionProperty, accessibleRoleProperty, accessibleTextProperty, addEventFilter, addEventHandler, applyCss, autosize, blendModeProperty, boundsInLocalProperty, boundsInParentProperty, buildEventDispatchChain, cacheHintProperty, cacheProperty, clipProperty, computeAreaInScreen, contains, contains, cursorProperty, depthTestProperty, disabledProperty, disableProperty, effectiveNodeOrientationProperty, effectProperty, eventDispatcherProperty, fireEvent, focusedProperty, focusTraversableProperty, getAccessibleHelp, getAccessibleRole, getAccessibleRoleDescription, getAccessibleText, getBlendMode, getBoundsInLocal, getBoundsInParent, getCacheHint, getClip, getCursor, getDepthTest, getEffect, getEffectiveNodeOrientation, getEventDispatcher, getId, getInitialCursor, getInputMethodRequests, getLayoutBounds, getLayoutX, getLayoutY, getLocalToParentTransform, getLocalToSceneTransform, getNodeOrientation, getOnContextMenuRequested, getOnDragDetected, getOnDragDone, getOnDragDropped, getOnDragEntered, getOnDragExited, getOnDragOver, getOnInputMethodTextChanged, getOnKeyPressed, getOnKeyReleased, getOnKeyTyped, getOnMouseClicked, getOnMouseDragEntered, getOnMouseDragExited, getOnMouseDragged, getOnMouseDragOver, getOnMouseDragReleased, getOnMouseEntered, getOnMouseExited, getOnMouseMoved, getOnMousePressed, getOnMouseReleased, getOnRotate, getOnRotationFinished, getOnRotationStarted, getOnScroll, getOnScrollFinished, getOnScrollStarted, getOnSwipeDown, getOnSwipeLeft, getOnSwipeRight, getOnSwipeUp, getOnTouchMoved, getOnTouchPressed, getOnTouchReleased, getOnTouchStationary, getOnZoom, getOnZoomFinished, getOnZoomStarted, getOpacity, getParent, getProperties, getPseudoClassStates, getRotate, getRotationAxis, getScaleX, getScaleY, getScaleZ, getScene, getStyle, getStyleableParent, getStyleClass, getTransforms, getTranslateX, getTranslateY, getTranslateZ, getTypeSelector, getUserData, getViewOrder, hasProperties, hoverProperty, idProperty, inputMethodRequestsProperty, intersects, intersects, isCache, isDisable, isDisabled, isFocused, isFocusTraversable, isHover, isManaged, isMouseTransparent, isPickOnBounds, isPressed, isVisible, layoutBoundsProperty, layoutXProperty, layoutYProperty, localToParent, localToParent, localToParent, localToParent, localToParent, localToParentTransformProperty, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToScene, localToSceneTransformProperty, localToScreen, localToScreen, localToScreen, localToScreen, localToScreen, lookupAll, managedProperty, mouseTransparentProperty, nodeOrientationProperty, notifyAccessibleAttributeChanged, onContextMenuRequestedProperty, onDragDetectedProperty, onDragDoneProperty, onDragDroppedProperty, onDragEnteredProperty, onDragExitedProperty, onDragOverProperty, onInputMethodTextChangedProperty, onKeyPressedProperty, onKeyReleasedProperty, onKeyTypedProperty, onMouseClickedProperty, onMouseDragEnteredProperty, onMouseDragExitedProperty, onMouseDraggedProperty, onMouseDragOverProperty, onMouseDragReleasedProperty, onMouseEnteredProperty, onMouseExitedProperty, onMouseMovedProperty, onMousePressedProperty, onMouseReleasedProperty, onRotateProperty, onRotationFinishedProperty, onRotationStartedProperty, onScrollFinishedProperty, onScrollProperty, onScrollStartedProperty, onSwipeDownProperty, onSwipeLeftProperty, onSwipeRightProperty, onSwipeUpProperty, onTouchMovedProperty, onTouchPressedProperty, onTouchReleasedProperty, onTouchStationaryProperty, onZoomFinishedProperty, onZoomProperty, onZoomStartedProperty, opacityProperty, parentProperty, parentToLocal, parentToLocal, parentToLocal, parentToLocal, parentToLocal, pickOnBoundsProperty, pressedProperty, pseudoClassStateChanged, relocate, removeEventFilter, removeEventHandler, requestFocus, resizeRelocate, rotateProperty, rotationAxisProperty, scaleXProperty, scaleYProperty, scaleZProperty, sceneProperty, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, sceneToLocal, screenToLocal, screenToLocal, screenToLocal, setAccessibleHelp, setAccessibleRole, setAccessibleRoleDescription, setAccessibleText, setBlendMode, setCache, setCacheHint, setClip, setCursor, setDepthTest, setDisable, setDisabled, setEffect, setEventDispatcher, setEventHandler, setFocused, setFocusTraversable, setHover, setId, setInputMethodRequests, setLayoutX, setLayoutY, setManaged, setMouseTransparent, setNodeOrientation, setOnContextMenuRequested, setOnDragDetected, setOnDragDone, setOnDragDropped, setOnDragEntered, setOnDragExited, setOnDragOver, setOnInputMethodTextChanged, setOnKeyPressed, setOnKeyReleased, setOnKeyTyped, setOnMouseClicked, setOnMouseDragEntered, setOnMouseDragExited, setOnMouseDragged, setOnMouseDragOver, setOnMouseDragReleased, setOnMouseEntered, setOnMouseExited, setOnMouseMoved, setOnMousePressed, setOnMouseReleased, setOnRotate, setOnRotationFinished, setOnRotationStarted, setOnScroll, setOnScrollFinished, setOnScrollStarted, setOnSwipeDown, setOnSwipeLeft, setOnSwipeRight, setOnSwipeUp, setOnTouchMoved, setOnTouchPressed, setOnTouchReleased, setOnTouchStationary, setOnZoom, setOnZoomFinished, setOnZoomStarted, setOpacity, setPickOnBounds, setPressed, setRotate, setRotationAxis, setScaleX, setScaleY, setScaleZ, setStyle, setTranslateX, setTranslateY, setTranslateZ, setUserData, setViewOrder, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, translateXProperty, translateYProperty, translateZProperty, usesMirroring, viewOrderProperty, visibleProperty`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

    - ### Methods inherited from interface javafx.css.Styleable

      `getStyleableNode`

- - ### Property Detail

    - #### showing

          public final ReadOnlyBooleanProperty showingProperty

      Indicates whether the `ContextMenu` is currently visible.
      See Also:
        `isShowing()`

    - #### popupSide

          public final ObjectProperty<Side> popupSideProperty

      Indicates on which side the `ContextMenu` should open in relation to the MenuButton. Menu items are generally laid out vertically in either case. For example, if the menu button were in a vertical toolbar on the left edge of the application, you might change `popupSide` to `Side.RIGHT` so that the popup will appear to the right of the MenuButton.
      Default value:
        `Side.BOTTOM`
      See Also:
        `getPopupSide()`, `setPopupSide(Side)`

    - #### onShowing

          public final ObjectProperty<EventHandler<Event>> onShowingProperty

      Called just prior to the `ContextMenu` being shown.
      Since:
        10
      See Also:
        `getOnShowing()`, `setOnShowing(EventHandler)`

    - #### onShown

          public final ObjectProperty<EventHandler<Event>> onShownProperty

      Called just after the `ContextMenu` is shown.
      Since:
        10
      See Also:
        `getOnShown()`, `setOnShown(EventHandler)`

    - #### onHiding

          public final ObjectProperty<EventHandler<Event>> onHidingProperty

      Called just prior to the `ContextMenu` being hidden.
      Since:
        10
      See Also:
        `getOnHiding()`, `setOnHiding(EventHandler)`

    - #### onHidden

          public final ObjectProperty<EventHandler<Event>> onHiddenProperty

      Called just after the `ContextMenu` has been hidden.
      Since:
        10
      See Also:
        `getOnHidden()`, `setOnHidden(EventHandler)`

  - ### Field Detail

    - #### ON_SHOWING

          public static final EventType<Event> ON_SHOWING

      Called prior to the MenuButton showing its popup after the user has clicked or otherwise interacted with the MenuButton.
      Since:
        JavaFX 8u60

    - #### ON_SHOWN

          public static final EventType<Event> ON_SHOWN

      Called after the MenuButton has shown its popup.
      Since:
        JavaFX 8u60

    - #### ON_HIDING

          public static final EventType<Event> ON_HIDING

      Called when the MenuButton popup will be hidden.
      Since:
        JavaFX 8u60

    - #### ON_HIDDEN

          public static final EventType<Event> ON_HIDDEN

      Called when the MenuButton popup has been hidden.
      Since:
        JavaFX 8u60

  - ### Constructor Detail

    - #### MenuButton

          public MenuButton()

      Creates a new empty menu button. Use `Labeled.setText(String)`, `Labeled.setGraphic(Node)` and `getItems()` to set the content.

    - #### MenuButton

          public MenuButton​(String text)

      Creates a new empty menu button with the given text to display on the button. Use `Labeled.setGraphic(Node)` and `getItems()` to set the content.
      Parameters:
        `text` - the text to display on the menu button

    - #### MenuButton

          public MenuButton​(String text,
                            Node graphic)

      Creates a new empty menu button with the given text and graphic to display on the button. Use `getItems()` to set the content.
      Parameters:
        `text` - the text to display on the menu button
        `graphic` - the graphic to display on the menu button

    - #### MenuButton

          public MenuButton​(String text,
                            Node graphic,
                            MenuItem... items)

      Creates a new menu button with the given text and graphic to display on the button, and inserts the given items into the `items` list.
      Parameters:
        `text` - the text to display on the menu button
        `graphic` - the graphic to display on the menu button
        `items` - The items to display in the popup menu.
      Since:
        JavaFX 8u40

  - ### Method Detail

    - #### getItems

          public final ObservableList<MenuItem> getItems()

      The items to show within this buttons menu. If this ObservableList is modified at runtime, the Menu will update as expected.

      Commonly used controls include including `MenuItem`, `CheckMenuItem`, `RadioMenuItem`, and of course `Menu`, which if added to a menu, will become a sub menu. `SeparatorMenuItem` is another commonly used Node in the Menu's items ObservableList.

      Returns:
        the list of menu items within this buttons menu

    - #### isShowing

          public final boolean isShowing()

      Gets the value of the property showing.
      Property description:
        Indicates whether the `ContextMenu` is currently visible.

    - #### showingProperty

          public final ReadOnlyBooleanProperty showingProperty()

      Indicates whether the `ContextMenu` is currently visible.
      See Also:
        `isShowing()`

    - #### setPopupSide

          public final void setPopupSide​(Side value)

      Sets the value of the property popupSide.
      Property description:
        Indicates on which side the `ContextMenu` should open in relation to the MenuButton. Menu items are generally laid out vertically in either case. For example, if the menu button were in a vertical toolbar on the left edge of the application, you might change `popupSide` to `Side.RIGHT` so that the popup will appear to the right of the MenuButton.
      Default value:
        `Side.BOTTOM`

    - #### getPopupSide

          public final Side getPopupSide()

      Gets the value of the property popupSide.
      Property description:
        Indicates on which side the `ContextMenu` should open in relation to the MenuButton. Menu items are generally laid out vertically in either case. For example, if the menu button were in a vertical toolbar on the left edge of the application, you might change `popupSide` to `Side.RIGHT` so that the popup will appear to the right of the MenuButton.
      Default value:
        `Side.BOTTOM`

    - #### popupSideProperty

          public final ObjectProperty<Side> popupSideProperty()

      Indicates on which side the `ContextMenu` should open in relation to the MenuButton. Menu items are generally laid out vertically in either case. For example, if the menu button were in a vertical toolbar on the left edge of the application, you might change `popupSide` to `Side.RIGHT` so that the popup will appear to the right of the MenuButton.
      Default value:
        `Side.BOTTOM`
      See Also:
        `getPopupSide()`, `setPopupSide(Side)`

    - #### onShowingProperty

          public final ObjectProperty<EventHandler<Event>> onShowingProperty()

      Called just prior to the `ContextMenu` being shown.
      Since:
        10
      See Also:
        `getOnShowing()`, `setOnShowing(EventHandler)`

    - #### setOnShowing

          public final void setOnShowing​(EventHandler<Event> value)

      Sets the value of the property onShowing.
      Property description:
        Called just prior to the `ContextMenu` being shown.
      Since:
        10

    - #### getOnShowing

          public final EventHandler<Event> getOnShowing()

      Gets the value of the property onShowing.
      Property description:
        Called just prior to the `ContextMenu` being shown.
      Since:
        10

    - #### onShownProperty

          public final ObjectProperty<EventHandler<Event>> onShownProperty()

      Called just after the `ContextMenu` is shown.
      Since:
        10
      See Also:
        `getOnShown()`, `setOnShown(EventHandler)`

    - #### setOnShown

          public final void setOnShown​(EventHandler<Event> value)

      Sets the value of the property onShown.
      Property description:
        Called just after the `ContextMenu` is shown.
      Since:
        10

    - #### getOnShown

          public final EventHandler<Event> getOnShown()

      Gets the value of the property onShown.
      Property description:
        Called just after the `ContextMenu` is shown.
      Since:
        10

    - #### onHidingProperty

          public final ObjectProperty<EventHandler<Event>> onHidingProperty()

      Called just prior to the `ContextMenu` being hidden.
      Since:
        10
      See Also:
        `getOnHiding()`, `setOnHiding(EventHandler)`

    - #### setOnHiding

          public final void setOnHiding​(EventHandler<Event> value)

      Sets the value of the property onHiding.
      Property description:
        Called just prior to the `ContextMenu` being hidden.
      Since:
        10

    - #### getOnHiding

          public final EventHandler<Event> getOnHiding()

      Gets the value of the property onHiding.
      Property description:
        Called just prior to the `ContextMenu` being hidden.
      Since:
        10

    - #### onHiddenProperty

          public final ObjectProperty<EventHandler<Event>> onHiddenProperty()

      Called just after the `ContextMenu` has been hidden.
      Since:
        10
      See Also:
        `getOnHidden()`, `setOnHidden(EventHandler)`

    - #### setOnHidden

          public final void setOnHidden​(EventHandler<Event> value)

      Sets the value of the property onHidden.
      Property description:
        Called just after the `ContextMenu` has been hidden.
      Since:
        10

    - #### getOnHidden

          public final EventHandler<Event> getOnHidden()

      Gets the value of the property onHidden.
      Property description:
        Called just after the `ContextMenu` has been hidden.
      Since:
        10

    - #### show

          public void show()

      Shows the `ContextMenu`, assuming this MenuButton is not disabled.
      See Also:
        `Node.isDisabled()`, `isShowing()`

    - #### hide

          public void hide()

      Hides the `ContextMenu`.
      See Also:
        `isShowing()`

    - #### fire

          public void fire()

      This has no impact.
      Specified by:
        `fire` in class `ButtonBase`

    - #### createDefaultSkin

          protected Skin<?> createDefaultSkin()

      Create a new instance of the default skin for this control. This is called to create a skin for the control if no skin is provided via CSS `-fx-skin` or set explicitly in a sub-class with `setSkin(...)`.
      Overrides:
        `createDefaultSkin` in class `Control`
      Returns:
        new instance of default skin for this control. If null then the control will have no skin unless one is provided by css.

    - #### executeAccessibleAction

          public void executeAccessibleAction​(AccessibleAction action,
                                              Object... parameters)

      This method is called by the assistive technology to request the action indicated by the argument should be executed.

      This method is commonly overridden by subclasses to implement action that are required for a specific role.
      If a particular action is not handled, the superclass implementation must be called.

      Overrides:
        `executeAccessibleAction` in class `ButtonBase`
      Parameters:
        `action` - the action to execute
        `parameters` - optional list of parameters
      See Also:
        `AccessibleAction`