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
`final ObjectProperty<EventHandler<Event>>`
`onHidden`
Called just after the `ContextMenu` has been hidden.
`final ObjectProperty<EventHandler<Event>>`
`onHiding`
Called just prior to the `ContextMenu` being hidden.
`final ObjectProperty<EventHandler<Event>>`
`onShowing`
Called just prior to the `ContextMenu` being shown.
`final ObjectProperty<EventHandler<Event>>`
`onShown`
Called just after the `ContextMenu` is shown.
`final ObjectProperty<Side>`
`popupSide`
Indicates on which side the `ContextMenu` should open in relation to the MenuButton.
`final 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 final EventType<Event>`
`ON_HIDDEN`
Called when the MenuButton popup has been hidden.
`static final EventType<Event>`
`ON_HIDING`
Called when the MenuButton popup will be hidden.
`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.
`static final 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.
`final ObservableList<MenuItem>`
`getItems()`
The items to show within this buttons menu.
`final EventHandler<Event>`
`getOnHidden()`
Gets the value of the `onHidden` property.
`final EventHandler<Event>`
`getOnHiding()`
Gets the value of the `onHiding` property.
`final EventHandler<Event>`
`getOnShowing()`
Gets the value of the `onShowing` property.
`final EventHandler<Event>`
`getOnShown()`
Gets the value of the `onShown` property.
`final Side`
`getPopupSide()`
Gets the value of the `popupSide` property.
`void`
`hide()`
Hides the `ContextMenu`.
`final boolean`
`isShowing()`
Gets the value of the `showing` property.
`final ObjectProperty<EventHandler<Event>>`
`onHiddenProperty()`
Called just after the `ContextMenu` has been hidden.
`final ObjectProperty<EventHandler<Event>>`
`onHidingProperty()`
Called just prior to the `ContextMenu` being hidden.
`final ObjectProperty<EventHandler<Event>>`
`onShowingProperty()`
Called just prior to the `ContextMenu` being shown.
`final ObjectProperty<EventHandler<Event>>`
`onShownProperty()`
Called just after the `ContextMenu` is shown.
`final ObjectProperty<Side>`
`popupSideProperty()`
Indicates on which side the `ContextMenu` should open in relation to the MenuButton.
`final void`
`setOnHidden(EventHandler<Event> value)`
Sets the value of the `onHidden` property.
`final void`
`setOnHiding(EventHandler<Event> value)`
Sets the value of the `onHiding` property.
`final void`
`setOnShowing(EventHandler<Event> value)`
Sets the value of the `onShowing` property.
`final void`
`setOnShown(EventHandler<Event> value)`
Sets the value of the `onShown` property.
`final void`
`setPopupSide(Side value)`
Sets the value of the `popupSide` property.
`void`
`show()`
Shows the `ContextMenu`, assuming this MenuButton is not disabled.
`final 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 Details

### showing

public final ReadOnlyBooleanProperty showingProperty
Indicates whether the `ContextMenu` is currently visible.

See Also:
  - `isShowing()`
  - `showingProperty()`

### 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)`
  - `popupSideProperty()`

### onShowing

public final ObjectProperty<EventHandler<Event>> onShowingProperty
Called just prior to the `ContextMenu` being shown.

Since:
  10
See Also:
  - `getOnShowing()`
  - `setOnShowing(EventHandler)`
  - `onShowingProperty()`

### onShown

public final ObjectProperty<EventHandler<Event>> onShownProperty
Called just after the `ContextMenu` is shown.

Since:
  10
See Also:
  - `getOnShown()`
  - `setOnShown(EventHandler)`
  - `onShownProperty()`

### onHiding

public final ObjectProperty<EventHandler<Event>> onHidingProperty
Called just prior to the `ContextMenu` being hidden.

Since:
  10
See Also:
  - `getOnHiding()`
  - `setOnHiding(EventHandler)`
  - `onHidingProperty()`

### onHidden

public final ObjectProperty<EventHandler<Event>> onHiddenProperty
Called just after the `ContextMenu` has been hidden.

Since:
  10
See Also:
  - `getOnHidden()`
  - `setOnHidden(EventHandler)`
  - `onHiddenProperty()`

## Field Details

### 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 Details

### 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 Details

### 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 `showing` property.

Property description:
  Indicates whether the `ContextMenu` is currently visible.
Returns:
  the value of the `showing` property
See Also:
  - `showingProperty()`

### showingProperty

public final ReadOnlyBooleanProperty showingProperty()
Indicates whether the `ContextMenu` is currently visible.

Returns:
  the `showing` property
See Also:
  - `isShowing()`

### setPopupSide

public final void setPopupSide(Side value)
Sets the value of the `popupSide` property.

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`
Parameters:
  `value` - the value for the `popupSide` property
See Also:
  - `getPopupSide()`
  - `popupSideProperty()`

### getPopupSide

public final Side getPopupSide()
Gets the value of the `popupSide` property.

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`
Returns:
  the value of the `popupSide` property
See Also:
  - `setPopupSide(Side)`
  - `popupSideProperty()`

### 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`
Returns:
  the `popupSide` property
See Also:
  - `getPopupSide()`
  - `setPopupSide(Side)`

### onShowingProperty

public final ObjectProperty<EventHandler<Event>> onShowingProperty()
Called just prior to the `ContextMenu` being shown.

Returns:
  the on showing property
Since:
  10
See Also:
  - `getOnShowing()`
  - `setOnShowing(EventHandler)`

### setOnShowing

public final void setOnShowing(EventHandler<Event> value)
Sets the value of the `onShowing` property.

Property description:
  Called just prior to the `ContextMenu` being shown.
Parameters:
  `value` - the value for the `onShowing` property
Since:
  10
See Also:
  - `getOnShowing()`
  - `onShowingProperty()`

### getOnShowing

public final EventHandler<Event> getOnShowing()
Gets the value of the `onShowing` property.

Property description:
  Called just prior to the `ContextMenu` being shown.
Returns:
  the value of the `onShowing` property
Since:
  10
See Also:
  - `setOnShowing(EventHandler)`
  - `onShowingProperty()`

### onShownProperty

public final ObjectProperty<EventHandler<Event>> onShownProperty()
Called just after the `ContextMenu` is shown.

Returns:
  the on shown property
Since:
  10
See Also:
  - `getOnShown()`
  - `setOnShown(EventHandler)`

### setOnShown

public final void setOnShown(EventHandler<Event> value)
Sets the value of the `onShown` property.

Property description:
  Called just after the `ContextMenu` is shown.
Parameters:
  `value` - the value for the `onShown` property
Since:
  10
See Also:
  - `getOnShown()`
  - `onShownProperty()`

### getOnShown

public final EventHandler<Event> getOnShown()
Gets the value of the `onShown` property.

Property description:
  Called just after the `ContextMenu` is shown.
Returns:
  the value of the `onShown` property
Since:
  10
See Also:
  - `setOnShown(EventHandler)`
  - `onShownProperty()`

### onHidingProperty

public final ObjectProperty<EventHandler<Event>> onHidingProperty()
Called just prior to the `ContextMenu` being hidden.

Returns:
  the on hiding property
Since:
  10
See Also:
  - `getOnHiding()`
  - `setOnHiding(EventHandler)`

### setOnHiding

public final void setOnHiding(EventHandler<Event> value)
Sets the value of the `onHiding` property.

Property description:
  Called just prior to the `ContextMenu` being hidden.
Parameters:
  `value` - the value for the `onHiding` property
Since:
  10
See Also:
  - `getOnHiding()`
  - `onHidingProperty()`

### getOnHiding

public final EventHandler<Event> getOnHiding()
Gets the value of the `onHiding` property.

Property description:
  Called just prior to the `ContextMenu` being hidden.
Returns:
  the value of the `onHiding` property
Since:
  10
See Also:
  - `setOnHiding(EventHandler)`
  - `onHidingProperty()`

### onHiddenProperty

public final ObjectProperty<EventHandler<Event>> onHiddenProperty()
Called just after the `ContextMenu` has been hidden.

Returns:
  the on hidden property
Since:
  10
See Also:
  - `getOnHidden()`
  - `setOnHidden(EventHandler)`

### setOnHidden

public final void setOnHidden(EventHandler<Event> value)
Sets the value of the `onHidden` property.

Property description:
  Called just after the `ContextMenu` has been hidden.
Parameters:
  `value` - the value for the `onHidden` property
Since:
  10
See Also:
  - `getOnHidden()`
  - `onHiddenProperty()`

### getOnHidden

public final EventHandler<Event> getOnHidden()
Gets the value of the `onHidden` property.

Property description:
  Called just after the `ContextMenu` has been hidden.
Returns:
  the value of the `onHidden` property
Since:
  10
See Also:
  - `setOnHidden(EventHandler)`
  - `onHiddenProperty()`

### 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`