Basics
Guides
API Reference
Basics
Guides
API Reference
[99:7] extends: Pane
The GridPane class wraps the JavaFX GridPane layout container, which arranges child nodes in a flexible grid of rows and columns. Each child is placed in a specific cell using column and row index constraints, and cells can span multiple columns or rows. Column widths and row heights can be set to fixed, percentage, or grow-based sizes using ColumnConstraints and RowConstraints, making GridPane well suited for form layouts and complex structured UIs.
| Property | Values | Default | Description |
|---|---|---|---|
-fx-hgap |
<size> |
0 |
Horizontal gap between columns. |
-fx-vgap |
<size> |
0 |
Vertical gap between rows. |
-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 |
top-left |
Alignment of the grid content within the GridPane. |
-fx-grid-lines-visible |
<boolean> |
false |
When true, draws grid lines for debugging layout. |
| 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 via the keyboard Tab key. |
-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. |
GridPane ()
Constructor that creates the GridPane object.
this objectsetHgap (double G)
Sets the horizontal gap between columns.
G is a double with the gap in pixels.this objectgetHgap ()
Returns the horizontal gap between columns.
A double with the gap in pixels.hgapProperty ()
Returns the DoubleProperty backing the horizontal gap.
An AJO wrapping javafx.beans.property.DoubleProperty.setVgap (double G)
Sets the vertical gap between rows.
G is a double with the gap in pixels.this objectgetVgap ()
Returns the vertical gap between rows.
A double with the gap in pixels.vgapProperty ()
Returns the DoubleProperty backing the vertical gap.
An AJO wrapping javafx.beans.property.DoubleProperty.setAlignment (string Align)
Sets the overall alignment of grid content within the GridPane.
Align is a string Pos value such as CENTER, TOP_LEFT, BOTTOM_RIGHT.this objectgetAlignment ()
Returns the overall alignment of grid content.
An AJO wrapping javafx.geometry.Pos.alignmentProperty ()
Returns the ObjectProperty backing the alignment.
An AJO wrapping javafx.beans.property.ObjectPropertysetGridLinesVisible (bool Visible)
Sets whether grid lines are visible. Used for layout debugging.
Visible is a bool; true draws debug grid lines.this objectisGridLinesVisible ()
Returns whether grid lines are visible.
A bool true when debug grid lines are drawn.gridLinesVisibleProperty ()
Returns the BooleanProperty backing the grid-lines-visible flag.
An AJO wrapping javafx.beans.property.BooleanProperty.getRowConstraints ()
Returns the ObservableList of RowConstraints applied to the grid rows.
An AJO wrapping ObservableListgetColumnConstraints ()
Returns the ObservableList of ColumnConstraints applied to the grid columns.
An AJO wrapping ObservableListadd (object NodeObj, int Col, int Row)
Adds a child node at the given column and row index.
NodeObj is the node wrapper to add.Col is an int with the zero-based column index.Row is an int with the zero-based row index.this objectadd5 (object NodeObj, int Col, int Row, int ColSpan, int RowSpan)
Adds a child node at the given column and row index with explicit column and row spans. Mirrors the 5-argument JavaFX overload.
NodeObj is the node wrapper to add.Col is an int with the zero-based column index.Row is an int with the zero-based row index.ColSpan is an int with the number of columns to span.RowSpan is an int with the number of rows to span.this objectaddRow (int Row, list Nodes)
Adds the given nodes as a single row at the specified row index.
Row is an int with the zero-based row index.Nodes is a list of node wrappers to place left to right.this objectaddColumn (int Col, list Nodes)
Adds the given nodes as a single column at the specified column index.
Col is an int with the zero-based column index.Nodes is a list of node wrappers to place top to bottom.this objectgetRowCount ()
Returns the number of rows currently in the grid.
An int with the row count.getColumnCount ()
Returns the number of columns currently in the grid.
An int with the column count.getCellBounds (int Col, int Row)
Returns the cell bounds for the given column and row.
Col is an int with the zero-based column index.Row is an int with the zero-based row index.An AJO wrapping javafx.geometry.Bounds for the cell.
Aussom
Write once. Embed everywhere.
Copyright 2026 Austin Lehman. All rights reserved.