- 
- 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 aContextMenu. A MenuButton shares a very similar API to theMenucontrol, insofar that you set the items that should be shown in theitemsObservableList, and there is aLabeled.textproperty to specify the label shown within the MenuButton.As mentioned, like the Menu API itself, you'll find an itemsObservableList within which you can provide anything that extends fromMenuItem. There are several useful subclasses ofMenuItemincludingRadioMenuItem,CheckMenuItem,Menu,SeparatorMenuItemandCustomMenuItem.A MenuButton can be set to show its menu on any side of the button. This is specified using the popupSideproperty. By default the menu appears below the button. However, regardless of the popupSide specified, if there is not enough room, theContextMenuwill 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 SummaryProperties Type Property Description ObjectProperty<Side>popupSideIndicates on which side theContextMenushould open in relation to the MenuButton.ReadOnlyBooleanPropertyshowingIndicates whether theContextMenuis currently visible.- 
Properties inherited from class javafx.scene.control.ButtonBasearmed, onAction
 - 
Properties inherited from class javafx.scene.control.ControlcontextMenu, skin, tooltip
 - 
Properties inherited from class javafx.scene.control.Labeledalignment, contentDisplay, ellipsisString, font, graphic, graphicTextGap, labelPadding, lineSpacing, mnemonicParsing, textAlignment, textFill, textOverrun, text, underline, wrapText
 - 
Properties inherited from class javafx.scene.NodeaccessibleHelp, 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
 - 
Properties inherited from class javafx.scene.ParentneedsLayout
 - 
Properties inherited from class javafx.scene.layout.Regionbackground, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, width
 
- 
 - 
Field SummaryFields Modifier and Type Field Description static EventType<Event>ON_HIDDENCalled when the MenuButton popup has been hidden.static EventType<Event>ON_HIDINGCalled when the MenuButton popup will be hidden.static EventType<Event>ON_SHOWINGCalled prior to the MenuButton showing its popup after the user has clicked or otherwise interacted with the MenuButton.static EventType<Event>ON_SHOWNCalled after the MenuButton has shown its popup.- 
Fields inherited from class javafx.scene.NodeBASELINE_OFFSET_SAME_AS_HEIGHT
 - 
Fields inherited from class javafx.scene.layout.RegionUSE_COMPUTED_SIZE, USE_PREF_SIZE
 
- 
 - 
Constructor SummaryConstructors 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 theitemslist.
 - 
Method SummaryAll Methods Instance Methods Concrete Methods Modifier and Type Method Description protected Skin<?>createDefaultSkin()Create a new instance of the default skin for this control.voidexecuteAccessibleAction(AccessibleAction action, Object... parameters)This method is called by the assistive technology to request the action indicated by the argument should be executed.voidfire()This has no impact.ObservableList<MenuItem>getItems()The items to show within this buttons menu.SidegetPopupSide()Gets the value of the property popupSide.voidhide()Hides theContextMenu.booleanisShowing()Gets the value of the property showing.ObjectProperty<Side>popupSideProperty()Indicates on which side theContextMenushould open in relation to the MenuButton.voidsetPopupSide(Side value)Sets the value of the property popupSide.voidshow()Shows theContextMenu, assuming this MenuButton is not disabled.ReadOnlyBooleanPropertyshowingProperty()Indicates whether theContextMenuis currently visible.- 
Methods inherited from class javafx.scene.control.ButtonBasearm, armedProperty, disarm, getOnAction, isArmed, onActionProperty, setOnAction
 - 
Methods inherited from class javafx.scene.control.ControlcomputeMaxHeight, 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.control.LabeledalignmentProperty, 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.NodeaccessibleHelpProperty, 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.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 - 
Methods inherited from class javafx.scene.ParentgetChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBounds
 - 
Methods inherited from class javafx.scene.layout.RegionbackgroundProperty, 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 interface javafx.css.StyleablegetStyleableNode
 
- 
 
- 
- 
- 
Property Detail- 
showingpublic final ReadOnlyBooleanProperty showingProperty Indicates whether theContextMenuis currently visible.- See Also:
- isShowing()
 
 - 
popupSidepublic final ObjectProperty<Side> popupSideProperty Indicates on which side theContextMenushould 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 changepopupSidetoSide.RIGHTso that the popup will appear to the right of the MenuButton.- Default value:
- Side.BOTTOM
- See Also:
- getPopupSide(),- setPopupSide(Side)
 
 
- 
 - 
Field Detail- 
ON_SHOWINGpublic 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_SHOWNpublic static final EventType<Event> ON_SHOWN Called after the MenuButton has shown its popup.- Since:
- JavaFX 8u60
 
 - 
ON_HIDINGpublic static final EventType<Event> ON_HIDING Called when the MenuButton popup will be hidden.- Since:
- JavaFX 8u60
 
 
- 
 - 
Constructor Detail- 
MenuButtonpublic MenuButton() Creates a new empty menu button. UseLabeled.setText(String),Labeled.setGraphic(Node)andgetItems()to set the content.
 - 
MenuButtonpublic MenuButton(String text) Creates a new empty menu button with the given text to display on the button. UseLabeled.setGraphic(Node)andgetItems()to set the content.- Parameters:
- text- the text to display on the menu button
 
 - 
MenuButtonpublic MenuButton(String text, Node graphic) Creates a new empty menu button with the given text and graphic to display on the button. UsegetItems()to set the content.- Parameters:
- text- the text to display on the menu button
- graphic- the graphic to display on the menu button
 
 - 
MenuButtonpublic 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 theitemslist.- 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- 
getItemspublic 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 courseMenu, which if added to a menu, will become a sub menu.SeparatorMenuItemis another commonly used Node in the Menu's items ObservableList.- Returns:
- the list of menu items within this buttons menu
 
 - 
isShowingpublic final boolean isShowing() Gets the value of the property showing.- Property description:
- Indicates whether the ContextMenuis currently visible.
 
 - 
showingPropertypublic final ReadOnlyBooleanProperty showingProperty() Indicates whether theContextMenuis currently visible.- See Also:
- isShowing()
 
 - 
setPopupSidepublic final void setPopupSide(Side value) Sets the value of the property popupSide.- Property description:
- Indicates on which side the ContextMenushould 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 changepopupSidetoSide.RIGHTso that the popup will appear to the right of the MenuButton.
- Default value:
- Side.BOTTOM
 
 - 
getPopupSidepublic final Side getPopupSide() Gets the value of the property popupSide.- Property description:
- Indicates on which side the ContextMenushould 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 changepopupSidetoSide.RIGHTso that the popup will appear to the right of the MenuButton.
- Default value:
- Side.BOTTOM
 
 - 
popupSidePropertypublic final ObjectProperty<Side> popupSideProperty() Indicates on which side theContextMenushould 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 changepopupSidetoSide.RIGHTso that the popup will appear to the right of the MenuButton.- Default value:
- Side.BOTTOM
- See Also:
- getPopupSide(),- setPopupSide(Side)
 
 - 
showpublic void show() Shows theContextMenu, assuming this MenuButton is not disabled.- See Also:
- Node.isDisabled(),- isShowing()
 
 - 
hidepublic void hide() Hides theContextMenu.- See Also:
- isShowing()
 
 - 
firepublic void fire() This has no impact.- Specified by:
- firein class- ButtonBase
 
 - 
createDefaultSkinprotected 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-skinor set explicitly in a sub-class withsetSkin(...).- Overrides:
- createDefaultSkinin 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.
 
 - 
executeAccessibleActionpublic 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:
- executeAccessibleActionin class- ButtonBase
- Parameters:
- action- the action to execute
- parameters- optional list of parameters
- See Also:
- AccessibleAction
 
 
- 
 
-