Basics

Guides

API Reference

Menu

Basics

Guides

API Reference

class: Button

[132:7] extends: Node, Control, Labeled, ButtonBase

The Button class wraps the JavaFX Button control, a standard push button that a user can click to trigger an action. It supports a text label, an optional graphic icon, and full CSS styling through the JavaFX CSS engine. Button extends ButtonBase, which extends Labeled, giving it a rich set of text and layout styling options in addition to all Region and Node properties. The tables below list every CSS property available to Button, organized by the class level where each property is defined. Properties defined at a higher level are inherited by all subclasses below it.

CSS Pseudo-classes -- Button

Pseudo-class Description
default Applies when the button receives a VK_ENTER key event that is not otherwise consumed.
cancel Applies when the button receives a VK_ESC key event that is not otherwise consumed.

CSS Pseudo-classes -- ButtonBase

Pseudo-class Description
armed Applies when the armed property is true, meaning the button is pressed and the cursor is still over it.

CSS Properties -- Labeled

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 button 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 button 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 button 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.

CSS Properties -- Control

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 button participates in focus traversal via the keyboard Tab key.

CSS Properties -- Region

Background fills

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.

Background images

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.

Stroked borders

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.

Border images

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.

Other Region properties

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.

CSS Properties -- Node

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 | n-resize | ne-resize | nw-resize | s-resize | se-resize | sw-resize | w-resize | e-resize | open-hand | closed-hand | text | wait | disappear | h-resize | v-resize | <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, Glow) 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.
-fx-scale-x <number> 1 Scale factor along the X axis.
-fx-scale-y <number> 1 Scale factor along the Y axis.
-fx-scale-z <number> 1 Scale factor along the Z axis.
-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 entirely; hidden keeps the space.
-fx-managed true | false true When false, the parent layout does not manage this node's position or size.

Methods

  • Button (Val)

    Constructor takes either an existing button object to set or a string with the button text.

    • @p Val is a string with the button text.
    • @r this object