public class MenuButton extends ButtonBase
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 Labeled.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.
MenuItem,
Menu,
SplitMenuButton| Type | Property and Description |
|---|---|
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. |
armed, onActionalignment, contentDisplay, ellipsisString, font, graphic, graphicTextGap, labelPadding, lineSpacing, mnemonicParsing, textAlignment, textFill, textOverrun, text, underline, wrapTextcontextMenu, skin, tooltipbackground, border, cacheShape, centerShape, height, insets, maxHeight, maxWidth, minHeight, minWidth, opaqueInsets, padding, prefHeight, prefWidth, scaleShape, shape, snapToPixel, widthneedsLayoutaccessibleHelp, 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, visibleUSE_COMPUTED_SIZE, USE_PREF_SIZEBASELINE_OFFSET_SAME_AS_HEIGHT| Constructor and 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. |
| Modifier and Type | Method and Description |
|---|---|
protected Skin<?> |
createDefaultSkin()
Create a new instance of the default skin for this control.
|
void |
executeAccessibleAction(AccessibleAction action,
Object... parameters)
*
Accessibility handling *
*
|
void |
fire()
This has no impact.
|
ObservableList<MenuItem> |
getItems()
The items to show within this buttons menu.
|
Side |
getPopupSide()
Gets the value of the property popupSide.
|
void |
hide()
Hides the
ContextMenu. |
boolean |
isShowing()
Gets the value of the property showing.
|
ObjectProperty<Side> |
popupSideProperty()
Indicates on which side the
ContextMenu should open in
relation to the MenuButton. |
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. |
arm, armedProperty, disarm, getOnAction, isArmed, onActionProperty, setOnActionalignmentProperty, contentDisplayProperty, ellipsisStringProperty, fontProperty, getAlignment, getClassCssMetaData, getContentBias, getContentDisplay, getControlCssMetaData, getEllipsisString, getFont, getGraphic, getGraphicTextGap, 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, wrapTextPropertycomputeMaxHeight, computeMaxWidth, computeMinHeight, computeMinWidth, computePrefHeight, computePrefWidth, contextMenuProperty, getBaselineOffset, getContextMenu, getCssMetaData, getSkin, getTooltip, isResizable, layoutChildren, queryAccessibleAttribute, setContextMenu, setSkin, setTooltip, skinProperty, tooltipPropertybackgroundProperty, 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, snapSize, snapSpace, snapToPixelProperty, widthPropertygetChildren, getChildrenUnmodifiable, getManagedChildren, getStylesheets, isNeedsLayout, layout, lookup, needsLayoutProperty, requestLayout, requestParentLayout, setNeedsLayout, updateBoundsaccessibleHelpProperty, 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, 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, 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, setVisible, snapshot, snapshot, startDragAndDrop, startFullDrag, styleProperty, toBack, toFront, translateXProperty, translateYProperty, translateZProperty, usesMirroring, visiblePropertypublic final ReadOnlyBooleanProperty showingProperty
ContextMenu is currently visible.isShowing()public final ObjectProperty<Side> popupSideProperty
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.Side.BOTTOMgetPopupSide(),
setPopupSide(Side)public MenuButton()
Labeled.setText(String),
Labeled.setGraphic(Node) and getItems() to set the content.public MenuButton(String text)
Labeled.setGraphic(Node) and getItems() to set the
content.text - the text to display on the menu buttonpublic MenuButton(String text, Node graphic)
getItems() to set the content.text - the text to display on the menu buttongraphic - the graphic to display on the menu buttonpublic MenuButton(String text, Node graphic, MenuItem... items)
items list.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.public final ObservableList<MenuItem> getItems()
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.
public final boolean isShowing()
ContextMenu is currently visible.public final ReadOnlyBooleanProperty showingProperty()
ContextMenu is currently visible.isShowing()public final void setPopupSide(Side value)
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.Side.BOTTOMpublic final Side getPopupSide()
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.Side.BOTTOMpublic final ObjectProperty<Side> popupSideProperty()
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.Side.BOTTOMgetPopupSide(),
setPopupSide(Side)public void show()
ContextMenu, assuming this MenuButton is not disabled.Node.isDisabled(),
isShowing()public void hide()
ContextMenu.isShowing()public void fire()
fire in class ButtonBaseprotected Skin<?> createDefaultSkin()
-fx-skin or set explicitly in a sub-class with setSkin(...).createDefaultSkin in class Controlpublic void executeAccessibleAction(AccessibleAction action, Object... parameters)
executeAccessibleAction in class ButtonBaseaction - the action to executeparameters - optional list of parametersAccessibleActionCopyright (c) 2008, 2015, Oracle and/or its affiliates. All rights reserved.