Spec-Zone.ru › OpenJavaFX 8
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 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.

Since:

JavaFX 2.0

See Also:

MenuItem, Menu, SplitMenuButton

  • Property Summary

    All MethodsInstance MethodsConcrete Methods
    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.
    • 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, visible
  • Field Summary

    • 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 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.
  • Method Summary

    All MethodsInstance MethodsConcrete Methods
    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.
    • 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, 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, 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, snapSize, snapSpace, 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, 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, visibleProperty
    • Methods inherited from class java.lang.Object

      clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • 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)

  • 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

    • 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

      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.

    • 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)

    • 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)
      * Accessibility handling * *

      Overrides:

      executeAccessibleAction in class ButtonBase

      Parameters:

      action - the action to execute

      See Also:

      AccessibleAction

© 2008, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from JavaFX API Documentation.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Java, JavaFX and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API