- All Implemented Interfaces:
Styleable,EventTarget,Skinnable
- Direct Known Subclasses:
SplitMenuButton
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:
-
Property Summary
PropertiesTypePropertyDescriptionfinal ObjectProperty<EventHandler<Event>>Called just after theContextMenuhas been hidden.final ObjectProperty<EventHandler<Event>>Called just prior to theContextMenubeing hidden.final ObjectProperty<EventHandler<Event>>Called just prior to theContextMenubeing shown.final ObjectProperty<EventHandler<Event>>Called just after theContextMenuis shown.final ObjectProperty<Side>Indicates on which side theContextMenushould open in relation to the MenuButton.final ReadOnlyBooleanPropertyIndicates whether theContextMenuis currently visible.Properties inherited from class javafx.scene.control.ButtonBase
armed, onActionProperties inherited from class javafx.scene.control.Labeled
alignment, contentDisplay, ellipsisString, font, graphic, graphicTextGap, labelPadding, lineSpacing, mnemonicParsing, textAlignment, textFill, textOverrun, text, underline, wrapTextProperties inherited from class javafx.scene.control.Control
contextMenu, skin, tooltipProperties inherited from class javafx.scene.layout.Region
background, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, widthProperties inherited from class javafx.scene.Parent
needsLayoutProperties 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
FieldsModifier and TypeFieldDescriptionCalled when the MenuButton popup has been hidden.Called when the MenuButton popup will be hidden.Called prior to the MenuButton showing its popup after the user has clicked or otherwise interacted with the MenuButton.Called after the MenuButton has shown its popup.Fields inherited from class javafx.scene.layout.Region
USE_COMPUTED_SIZE, USE_PREF_SIZEFields inherited from class javafx.scene.Node
BASELINE_OFFSET_SAME_AS_HEIGHT -
Constructor Summary
ConstructorsConstructorDescriptionCreates 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 Summary
Modifier and TypeMethodDescriptionprotected Skin<?>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.final ObservableList<MenuItem>getItems()The items to show within this buttons menu.final EventHandler<Event>Gets the value of the property onHidden.final EventHandler<Event>Gets the value of the property onHiding.final EventHandler<Event>Gets the value of the property onShowing.final EventHandler<Event>Gets the value of the property onShown.final SideGets the value of the property popupSide.voidhide()Hides theContextMenu.final booleanGets the value of the property showing.final ObjectProperty<EventHandler<Event>>Called just after theContextMenuhas been hidden.final ObjectProperty<EventHandler<Event>>Called just prior to theContextMenubeing hidden.final ObjectProperty<EventHandler<Event>>Called just prior to theContextMenubeing shown.final ObjectProperty<EventHandler<Event>>Called just after theContextMenuis shown.final ObjectProperty<Side>Indicates on which side theContextMenushould open in relation to the MenuButton.final voidsetOnHidden(EventHandler<Event> value) Sets the value of the property onHidden.final voidsetOnHiding(EventHandler<Event> value) Sets the value of the property onHiding.final voidsetOnShowing(EventHandler<Event> value) Sets the value of the property onShowing.final voidsetOnShown(EventHandler<Event> value) Sets the value of the property onShown.final voidsetPopupSide(Side value) Sets the value of the property popupSide.voidshow()Shows theContextMenu, assuming this MenuButton is not disabled.final ReadOnlyBooleanPropertyIndicates whether theContextMenuis currently visible.Methods inherited from class javafx.scene.control.ButtonBase
arm, armedProperty, disarm, getOnAction, isArmed, onActionProperty, setOnActionMethods 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, wrapTextPropertyMethods 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, tooltipPropertyMethods 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, widthPropertyMethods inherited from class javafx.scene.Parent
getChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBoundsMethods 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, visiblePropertyMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitMethods inherited from interface javafx.css.Styleable
getStyleableNode
-
Property Details
-
showing
Indicates whether theContextMenuis currently visible.- See Also:
-
popupSide
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:
-
onShowing
Called just prior to theContextMenubeing shown.- Since:
- 10
- See Also:
-
onShown
Called just after theContextMenuis shown.- Since:
- 10
- See Also:
-
onHiding
Called just prior to theContextMenubeing hidden.- Since:
- 10
- See Also:
-
onHidden
Called just after theContextMenuhas been hidden.- Since:
- 10
- See Also:
-
-
Field Details
-
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
Called after the MenuButton has shown its popup.- Since:
- JavaFX 8u60
-
ON_HIDING
Called when the MenuButton popup will be hidden.- Since:
- JavaFX 8u60
-
ON_HIDDEN
Called when the MenuButton popup has been hidden.- Since:
- JavaFX 8u60
-
-
Constructor Details
-
MenuButton
public MenuButton()Creates a new empty menu button. UseLabeled.setText(String),Labeled.setGraphic(Node)andgetItems()to set the content. -
MenuButton
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
-
MenuButton
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 buttongraphic- the graphic to display on the menu button
-
MenuButton
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 buttongraphic- the graphic to display on the menu buttonitems- The items to display in the popup menu.- Since:
- JavaFX 8u40
-
-
Method Details
-
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
-
isShowing
public final boolean isShowing()Gets the value of the property showing.- Property description:
- Indicates whether the
ContextMenuis currently visible.
-
showingProperty
Indicates whether theContextMenuis currently visible.- See Also:
-
setPopupSide
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
-
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
-
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:
-
onShowingProperty
Called just prior to theContextMenubeing shown.- Since:
- 10
- See Also:
-
setOnShowing
Sets the value of the property onShowing.- Property description:
- Called just prior to the
ContextMenubeing shown. - Since:
- 10
-
getOnShowing
Gets the value of the property onShowing.- Property description:
- Called just prior to the
ContextMenubeing shown. - Since:
- 10
-
onShownProperty
Called just after theContextMenuis shown.- Since:
- 10
- See Also:
-
setOnShown
Sets the value of the property onShown.- Property description:
- Called just after the
ContextMenuis shown. - Since:
- 10
-
getOnShown
Gets the value of the property onShown.- Property description:
- Called just after the
ContextMenuis shown. - Since:
- 10
-
onHidingProperty
Called just prior to theContextMenubeing hidden.- Since:
- 10
- See Also:
-
setOnHiding
Sets the value of the property onHiding.- Property description:
- Called just prior to the
ContextMenubeing hidden. - Since:
- 10
-
getOnHiding
Gets the value of the property onHiding.- Property description:
- Called just prior to the
ContextMenubeing hidden. - Since:
- 10
-
onHiddenProperty
Called just after theContextMenuhas been hidden.- Since:
- 10
- See Also:
-
setOnHidden
Sets the value of the property onHidden.- Property description:
- Called just after the
ContextMenuhas been hidden. - Since:
- 10
-
getOnHidden
Gets the value of the property onHidden.- Property description:
- Called just after the
ContextMenuhas been hidden. - Since:
- 10
-
show
public void show()Shows theContextMenu, assuming this MenuButton is not disabled.- See Also:
-
hide
public void hide()Hides theContextMenu.- See Also:
-
fire
public void fire()This has no impact.- Specified by:
firein classButtonBase
-
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 classControl- 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
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 classButtonBase- Parameters:
action- the action to executeparameters- optional list of parameters- See Also:
-