Basics
Guides
API Reference
Basics
Guides
API Reference
[125:7] extends: ButtonBase
The MenuButton class wraps the JavaFX MenuButton control, a button that
opens a popup menu of MenuItem choices when the user clicks it. Unlike a
standard Button, MenuButton does not fire a single action event; instead,
each item in its menu handles its own action. MenuButton extends Labeled,
giving it a text label, optional graphic, and the full set of Labeled CSS
properties. Two pseudo-classes reflect whether the popup is currently
showing and which direction it opens.
Style class: menu-button
| Pseudo-class | Description |
|---|---|
openvertically |
Applies when the openVertically property is true, meaning the popup opens below the button. |
showing |
Applies when the popup menu is currently visible. |
| Property | Values | Default | Description |
|---|---|---|---|
-fx-alignment |
top-left | top-center | top-right | center-left | center | center-right | bottom-left | bottom-center | bottom-right | baseline-left | baseline-center | baseline-right |
center-left |
Aligns the content (text + graphic) within the control bounds. |
-fx-text-alignment |
left | center | right | justify |
left |
Horizontal alignment of multi-line text within the text area. |
-fx-text-overrun |
clip | ellipsis | word-ellipsis | center-ellipsis | center-word-ellipsis | leading-ellipsis | leading-word-ellipsis |
ellipsis |
Behavior when the label text is too long to fit. ellipsis appends "..." at the truncation point. |
-fx-wrap-text |
true | false |
false |
When true, text wraps to additional lines instead of being truncated. |
-fx-font |
<font> |
platform default (inherits) | Shorthand for the font used to render the label text. Inherits from parent by default. |
-fx-underline |
true | false |
false |
When true, an underline is drawn beneath the label text. |
-fx-graphic |
<uri> |
null |
URI of an image to display alongside the label text as the control graphic. |
-fx-content-display |
top | right | bottom | left | center | graphic-only | text-only |
left |
Position of the graphic relative to the text. |
-fx-graphic-text-gap |
<size> |
4 |
Pixel gap between the graphic and the text. |
-fx-label-padding |
<size> or <top> <right> <bottom> <left> |
0 0 0 0 |
Extra padding added around the label content inside the control bounds. |
-fx-text-fill |
<paint> |
black |
Color of the label text. |
-fx-ellipsis-string |
<string> |
"..." |
The string appended when text is truncated with an ellipsis overrun style. |
-fx-line-spacing |
<size> |
0 |
Additional space added between lines of wrapped text. |
| Property | Values | Default | Description |
|---|---|---|---|
-fx-skin |
<string> |
null |
Fully qualified class name of the Skin to use for rendering this control. |
-fx-focus-traversable |
true | false |
true |
When true, the control participates in focus traversal via the keyboard Tab key. |
| Property | Values | Default | Description |
|---|---|---|---|
-fx-background-color |
<paint> [, <paint>]* |
transparent |
One or more paint values for background fill layers, rendered back to front. |
-fx-background-insets |
<size> or <t> <r> <b> <l> [, ...]* |
0 0 0 0 |
Insets from the region edges for each background fill layer. |
-fx-background-radius |
<size> [/ <size>]* [, ...]* |
0 0 0 0 |
Corner radii for each background fill layer. |
| Property | Values | Default | Description |
|---|---|---|---|
-fx-background-image |
<uri> [, <uri>]* |
null |
One or more image URIs for background image layers. |
-fx-background-position |
<bg-position> [, ...]* |
0% 0% |
Position of each background image within the region. Accepts keywords or size values. |
-fx-background-repeat |
<repeat-style> [, ...]* |
repeat repeat |
Tiling behavior for each background image. Values: repeat, no-repeat, round, space applied per axis. |
-fx-background-size |
<bg-size> [, ...]* |
auto auto |
Dimensions for each background image. Supports cover, contain, stretch, or explicit sizes. |
| Property | Values | Default | Description |
|---|---|---|---|
-fx-border-color |
<paint> or <t> <r> <b> <l> [, ...]* |
null |
Paint colors for the border stroke layers. |
-fx-border-insets |
<size> or <t> <r> <b> <l> [, ...]* |
null |
Insets from region edges for each border layer. |
-fx-border-radius |
<size> [, ...]* |
null |
Corner radii for border stroke layers. |
-fx-border-style |
<border-style> [, ...]* |
null |
Border line style (solid, dotted, dashed) plus phase and line cap/join options per layer. |
-fx-border-width |
<size> or <t> <r> <b> <l> [, ...]* |
null |
Thickness of each border stroke layer, per side. |
| Property | Values | Default | Description |
|---|---|---|---|
-fx-border-image-source |
<uri> [, <uri>]* |
null |
Image URIs used to paint the border. |
-fx-border-image-insets |
<size> or <t> <r> <b> <l> [, ...]* |
0 0 0 0 |
Insets for each border image layer. |
-fx-border-image-repeat |
<repeat-style> [, ...]* |
repeat repeat |
Tiling behavior for each border image. |
-fx-border-image-slice |
<size> or <t> <r> <b> <l> [fill] [, ...]* |
100% |
Divides each border image into nine regions. Adding fill preserves the center region. |
-fx-border-image-width |
<size> or <t> <r> <b> <l> [, ...]* |
1 1 1 1 |
Width of each border image slice per side. |
| Property | Values | Default | Description |
|---|---|---|---|
-fx-padding |
<size> or <t> <r> <b> <l> |
0 0 0 0 |
Interior padding between the region border and its content. |
-fx-shape |
<string> |
null |
SVG path string that defines a custom clip shape for the region. |
-fx-scale-shape |
true | false |
true |
When true, the shape is scaled to fit the region. |
-fx-position-shape |
true | false |
true |
When true, the shape is centered within the region. |
-fx-snap-to-pixel |
true | false |
true |
When true, positions and sizes are rounded to whole pixel boundaries. |
-fx-min-width |
<size> |
-1 |
Minimum width. -1 uses the computed minimum. |
-fx-pref-width |
<size> |
-1 |
Preferred width. -1 uses the computed preferred. |
-fx-max-width |
<size> |
-1 |
Maximum width. -1 uses the computed maximum. |
-fx-min-height |
<size> |
-1 |
Minimum height. -1 uses the computed minimum. |
-fx-pref-height |
<size> |
-1 |
Preferred height. -1 uses the computed preferred. |
-fx-max-height |
<size> |
-1 |
Maximum height. -1 uses the computed maximum. |
| Property | Values | Default | Description |
|---|---|---|---|
-fx-blend-mode |
add | blue | color-burn | color-dodge | darken | difference | exclusion | green | hard-light | lighten | multiply | overlay | red | screen | soft-light | src-atop | src-in | src-out | src-over |
null |
Blend mode used when compositing this node with nodes beneath it. |
-fx-cursor |
null | crosshair | default | hand | move | e-resize | h-resize | ne-resize | nw-resize | n-resize | se-resize | sw-resize | s-resize | w-resize | v-resize | text | wait | <url> |
null (inherits) |
Mouse cursor shape shown when the pointer is over this node. Inherits from parent by default. |
-fx-effect |
<effect> |
null |
A visual effect (e.g. DropShadow, InnerShadow) applied to the rendered node. |
-fx-focus-traversable |
true | false |
false |
Whether this node participates in focus traversal. Overridden to true by Control. |
-fx-view-order |
<number> |
0 |
Adjusts rendering and hit-test order within the parent without changing the scene graph order. |
-fx-opacity |
<number> [0.0 - 1.0] |
1 |
Opacity of the node. 0 is fully transparent, 1 is fully opaque. |
-fx-rotate |
<number> |
0 |
Rotation angle in degrees applied around the node's center point. Positive values are clockwise. |
-fx-scale-x |
<number> |
1 |
Scale factor along the X axis about the node's center. |
-fx-scale-y |
<number> |
1 |
Scale factor along the Y axis about the node's center. |
-fx-scale-z |
<number> |
1 |
Scale factor along the Z axis about the node's center. |
-fx-translate-x |
<number> |
0 |
Translation offset along the X axis in pixels. |
-fx-translate-y |
<number> |
0 |
Translation offset along the Y axis in pixels. |
-fx-translate-z |
<number> |
0 |
Translation offset along the Z axis in pixels. |
visibility |
visible | hidden | collapse | inherit |
visible |
Controls whether the node is rendered and participates in layout. collapse removes it from layout; hidden keeps the space. |
-fx-managed |
true | false |
true |
When false, the parent layout does not manage this node's position or size. |
MenuButton (string Text = "")
Creates a new MenuButton with the specified text.
Text is a string with the button label.add (Items)
Adds one or more menu items.
Items is a MenuItem or a list of MenuItems.this object for chaininggetItems ()
Returns the observable list of MenuItems contained in this MenuButton.
An AussomJavaObject around an ObservableListisShowing ()
Returns whether the popup menu is currently visible.
A bool that is true when the popup is showing.showingProperty ()
Returns the read-only showing property for binding or change listeners.
An AussomJavaObject around a ReadOnlyBooleanProperty.setPopupSide (string SideStr)
Sets the side of the button on which the popup menu opens.
SideStr is a string Side enum name ("TOP", "BOTTOM", "LEFT", "RIGHT").this object for chaininggetPopupSide ()
Returns the Side enum value indicating where the popup menu opens.
An AussomJavaObject around the javafx.geometry.Side enum value.popupSideProperty ()
Returns the popupSide property for binding or change listeners.
An AussomJavaObject around an ObjectPropertyonShowingProperty ()
Returns the onShowing property for binding or change listeners.
An AussomJavaObject around an ObjectProperty<EventHandlersetOnShowing (callback Cb)
Registers a callback invoked just before the popup menu becomes visible.
Cb is a callback function invoked with the Event AJO.this object for chaininggetOnShowing ()
Returns the current onShowing EventHandler AJO.
An AussomJavaObject around the EventHandler, or null.onShownProperty ()
Returns the onShown property for binding or change listeners.
An AussomJavaObject around an ObjectProperty<EventHandlersetOnShown (callback Cb)
Registers a callback invoked when the popup menu is shown.
Cb is a callback function invoked with the Event AJO.this object for chaininggetOnShown ()
Returns the current onShown EventHandler AJO.
An AussomJavaObject around the EventHandler, or null.onHidingProperty ()
Returns the onHiding property for binding or change listeners.
An AussomJavaObject around an ObjectProperty<EventHandlersetOnHiding (callback Cb)
Registers a callback invoked just before the popup menu hides.
Cb is a callback function invoked with the Event AJO.this object for chaininggetOnHiding ()
Returns the current onHiding EventHandler AJO.
An AussomJavaObject around the EventHandler, or null.onHiddenProperty ()
Returns the onHidden property for binding or change listeners.
An AussomJavaObject around an ObjectProperty<EventHandlersetOnHidden (callback Cb)
Registers a callback invoked when the popup menu has been hidden.
Cb is a callback function invoked with the Event AJO.this object for chaininggetOnHidden ()
Returns the current onHidden EventHandler AJO.
An AussomJavaObject around the EventHandler, or null.show ()
Shows the popup menu attached to this MenuButton.
this object for chaininghide ()
Hides the popup menu attached to this MenuButton.
this object for chainingfire ()
Fires the MenuButton. This overrides ButtonBase.fire(), and instead toggles whether the MenuButton's popup is shown or hidden.
this object for chaining
Aussom
Write once. Embed everywhere.
Copyright 2026 Austin Lehman. All rights reserved.