Overview
The Tile container lays out its content nodes in uniformly sized layout spaces or "tiles". Tile supports both horizontal (default) and vertical orientations.
The tile size defaults to the size needed to encompass the largest
preferred width and height of its content nodes. The tile size may also
be set by the application using tileWidth, tileHeight
.
Resizable content nodes will be resized to fill the width/height of the
their tile unless either of those dimensions are greater than the resizable's
maximum width/height, in which case the node's maximum dimension will be used.
Nodes which cannot be resized to fill their tile (either because they are
not Resizable or their max size prevents it) will be aligned within
their tile according to the nodeHPos
and noseVPos
variables,
which both default to CENTER
.
Tile can be configured to lay out the tiles either horizontally or vertically and will automatically wrap tiles at the tile container's width (for horizontal) or height (for vertical).
To establish the tile's initial preferred size, the number of rows and/or columns may be specified at initialization. However, if the tile container's size changes after initialization, the number of rows and columns may change to flow the tiles appropriately within the space.
A horizontal Tile example:
Tile {
hgap: 8
vgap: 8
columns: 5 // initial Tile will be layed out in 4 rows of 5 nodes
content: for (i in [1..20])
ImageView { .. }
}
A vertical Tile example:
Tile {
vertical: true
hgap: 15
vgap: 10
nodeHPos: HPos.LEFT // nodes will be left-aligned within their tiles
rows: 10 // initial Tile will be layed out in 2 columns of 10 nodes
content: for (i in [1..20])
ImageView { .. }
}
Tile supports node-specific layout constraints defined by a layoutInfo
of
type LayoutInfo. Example:
Tile {
content: [
Button {
layoutInfo: LayoutInfo { width: 100 height: 50 } // overrides preferred size
}
// other content
]
}
Variable Summary
access | name | type | Can Read | Can Init | Can Write | Default Value | description |
---|---|---|---|---|---|---|---|
public | columns | Integer |
The number of columns used to layout the tiles. The number of columns used to layout the tiles.
For vertical layout, this defaults to |
||||
public | hgap | Number | 0 |
The amount of horizontal space between tiles in a row. |
|||
public | hpos | HPos | HPos.LEFT |
The horizontal position of the rows within this container's width. |
|||
public | nodeHPos | HPos | HPos.CENTER |
The horizontal position of each node within its tile. The horizontal position of each node within its tile.
This may be overridden for individual nodes by setting the Profile: common |
|||
public | nodeVPos | VPos | HPos.CENTER |
The vertical position of each node within its tile. The vertical position of each node within its tile.
This may be overridden for individual nodes by setting the Profile: common |
|||
public | rows | Integer |
The number of rows used to lay out the tiles. The number of rows used to lay out the tiles.
For horizontal layout, this defaults to |
||||
public | tileHeight | Number |
The height of each tile. The height of each tile. By default this will be calculated to be the largest preferred height of the content nodes, however this value may instead be initialized by the application. |
||||
public | tileWidth | Number |
The width of each tile. The width of each tile. By default this will be calculated to be the largest preferred width of the content nodes, however this value may instead be initialized by the application. |
||||
public | vertical | Boolean | false |
Whether or not tiles are layed out in the vertical (rather than a horizontal) direction. |
|||
public | vgap | Number | 0 |
The amount of vertical space between tiles in a column. |
|||
public | vpos | VPos | VPos.TOP |
The vertical position of the columns within this container's height. |
Inherited Variables
javafx.scene.Group
access | name | type | Can Read | Can Init | Can Write | Default Value | description |
---|---|---|---|---|---|---|---|
public | blendMode | BlendMode | SRC_OVER |
The BlendMode used to blend the children with each other. |
|||
public | content | Node[] | empty |
A sequence of child A sequence of child See the class documentation for Node for scene graph structure restrictions on setting a Group's content sequence. If these restrictions are violated by a change to the content sequence, the change is ignored and the previous value of the content sequence is restored. Throws: Profile: common |
javafx.scene.Parent
access | name | type | Can Read | Can Init | Can Write | Default Value | description |
---|---|---|---|---|---|---|---|
public-read protected | needsLayout | Boolean | subclass | subclass |
javafx.scene.Node
access | name | type | Can Read | Can Init | Can Write | Default Value | description |
---|---|---|---|---|---|---|---|
public | blocksMouse | Boolean | false |
If If Profile: common conditional mouse |
|||
public-read | boundsInLocal | Bounds |
The rectangular bounds of this The rectangular bounds of this
Note that this method does not take the node's visibility into account;
the test is based on the geometry of this This variable will always be a non-null value. Note that boundsInLocal is automatically recomputed whenever the geometry of a node changes. For this reason, it is an error to bind any of these values in a node to an expression that depends upon this variable. For example, the "x" or "y" variables of a shape should never be bound to boundsInLocal for the purpose of positioning the node. Profile: common |
||||
public-read | boundsInParent | Bounds |
The rectangular bounds of this The rectangular bounds of this
The resulting bounds will be conceptually in the coordinate space of the
Note that this method does not take the node's visibility into account;
the test is based on the geometry of this This variable will always be a non-null value. Note that boundsInParent is automatically recomputed whenever the geometry of a node changes, or when any of the following change: the transforms sequence, the translateX, translateY, layoutX, layoutY, scaleX, scaleY, or rotate variable. For this reason, it is an error to bind any of these values in a node to an expression that depends upon this variable. For example, the "x" or "y" variables of a shape, or translateX, translateY should never be bound to boundsInParent for the purpose of positioning the node. Profile: common |
||||
public | cache | Boolean | false |
A performance hint to the system to indicate that this A performance hint to the system to indicate that this Profile: common |
|||
public | clip | Node | null |
Specifies a Specifies a For example, you can use an javafx.scene.image.ImageView Node as a mask to represent the Clip. Or you could use one of the geometric shape Nodes such as javafx.scene.shape.Rectangle or javafx.scene.shape.Circle. Or you could use a javafx.scene.text.Text node to represent the Clip. See the class documentation for Node for scene graph structure restrictions on setting the clip. If these restrictions are violated by a change to the clip variable, the change is ignored and the previous value of the clip variable is restored. nullProfile: common conditional clip |
|||
public | cursor | Cursor | null |
Defines the mouse cursor for this Defines the mouse cursor for this Profile: common conditional cursor |
|||
public | disable | Boolean | false |
Sets the individual disabled state of this Sets the individual disabled state of this Profile: common |
|||
public-read | disabled | Boolean | false |
Indicates whether or not this Indicates whether or not this
A disabled
A disabled Profile: common |
|||
public | effect | Effect | null |
Specifies an effect to apply to this |
|||
public-read protected | focused | Boolean | subclass | subclass | false |
Indicates whether this Indicates whether this Profile: common |
|
public | focusTraversable | Boolean | fase |
Specifies whether this Specifies whether this Profile: common |
|||
public-read protected | hover | Boolean | subclass | subclass | false |
Whether or not this Whether or not this NOTE: the current implementation of hover relies on mouse enter and exit events to determine whether this Node is in the hover state; this means that this feature is currently supported only on systems that have a mouse. Future implementations may provide alternative means of supporting hover. falseProfile: common |
|
public | id | String | empty string |
The id of this The id of this Profile: common |
|||
public-read protected | layoutBounds | Bounds | subclass | subclass |
The rectangular bounds that should be used in calculations for both manual
and automatic layout of this The rectangular bounds that should be used in calculations for both manual
and automatic layout of this
Note that the layoutX, layoutY, translateX, and
translateY variables are not included in the layoutBounds.
This is important because layout code must first determine the current
size and location of the layoutBounds is automatically recomputed whenever the geometry of a node changes. For this reason, it is an error to bind any of these values in a node to an expression that depends upon this variable. For example, the "x" or "y" variables of a shape should never be bound to layoutBounds for the purpose of positioning the node. Profile: common |
||
public | layoutInfo | LayoutInfoBase |
Hook for node-specific layout information used by layout containers. Hook for node-specific layout information used by layout containers. If the node is not a child of a container which supports layout info, this variable will be ignored. Note that layoutInfo object literals may be shared across nodes, which means altering the vars in layoutInfo will affect all such nodes. |
||||
public | layoutX | Number | 0 |
Defines the X coordinate of the translation that is added to the
transformed coordinates of this Defines the X coordinate of the translation that is added to the
transformed coordinates of this For example, if Profile: common |
|||
public | layoutY | Number | 0 |
Defines the Y coordinate of the translation that is added to the
transformed coordinates of this Defines the Y coordinate of the translation that is added to the
transformed coordinates of this For example, if Profile: common |
|||
public | onKeyPressed | function(:KeyEvent):Void |
Defines a function to be called when this |
||||
public | onKeyReleased | function(:KeyEvent):Void |
Defines a function to be called when this |
||||
public | onKeyTyped | function(:KeyEvent):Void |
Defines a function to be called when this Defines a function to be called when this Profile: common conditional keyboard |
||||
public | onMouseClicked | function(:MouseEvent):Void |
Defines a function to be called when a mouse button has been clicked
(pressed and released) on this |
||||
public | onMouseDragged | function(:MouseEvent):Void |
Defines a function to be called when a mouse button is pressed
on this |
||||
public | onMouseEntered | function(:MouseEvent):Void |
Defines a function to be called when the mouse enters this |
||||
public | onMouseExited | function(:MouseEvent):Void |
Defines a function to be called when the mouse exits this |
||||
public | onMouseMoved | function(:MouseEvent):Void |
Defines a function to be called when mouse cursor moves within
this |
||||
public | onMousePressed | function(:MouseEvent):Void |
Defines a function to be called when a mouse button
has been pressed on this |
||||
public | onMouseReleased | function(:MouseEvent):Void |
Defines a function to be called when a mouse button
has been released on this |
||||
public | onMouseWheelMoved | function(:MouseEvent):Void |
Defines a function to be called when the mouse scroll wheel has moved. |
||||
public | opacity | Number | 1.0 |
Specifies how opaque (that is, solid) the Specifies how opaque (that is, solid) the A visible node with any opacity setting still receives mouse events and can receive keyboard focus. For example, if you want to have a large invisible rectangle overlay all Nodes in the scene graph in order to intercept mouse events but not be visible to the user, you could create a large Rectangle that had an opacity of 0%. Opacity is specified as a value between 0 and 1. Values less than 0 or greater than 1 are clipped to 0 and 1 respectively. On some platforms ImageView might not support opacity variable. 1.0Profile: common |
|||
public-read package | parent | Parent | null |
The parent of this The parent of this Profile: common |
|||
public-read protected | pressed | Boolean | subclass | subclass | false |
Whether or not the Whether or not the Profile: common |
|
public | rotate | Number | 0.0 |
Defines the angle of rotation about the Defines the angle of rotation about the This rotation factor is not included in layoutBounds by default, which makes it ideal for rotating the entire node after all effects and transforms have been taken into account. The pivot point about which the rotation occurs is the center of the untransformed layoutBounds.
Note that because the pivot point is computed as the center of this
Profile: common |
|||
public | scaleX | Number | 1.0 |
Defines the factor by which coordinates are scaled about the center of the
object along the X axis of this Defines the factor by which coordinates are scaled about the center of the
object along the X axis of this This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account. The pivot point about which the scale occurs is the center of the untransformed layoutBounds. 1.0Profile: common |
|||
public | scaleY | Number | 1.0 |
Defines the factor by which coordinates are scaled about the center of the
object along the Y axis of this Defines the factor by which coordinates are scaled about the center of the
object along the Y axis of this This scale factor is not included in layoutBounds by default, which makes it ideal for scaling the entire node after all effects and transforms have been taken into account. The pivot point about which the scale occurs is the center of the untransformed layoutBounds. 1.0Profile: common |
|||
public-read package | scene | Scene | null |
The Scene that this The Scene that this Profile: common |
|||
public | style | String | empty string |
A string representation of the CSS style associated with this specific Node. A string representation of the CSS style associated with this specific Node. This is exactly analogous to the "style" attribute on an HTML element, but uses the syntax defined in JavaFX CSS. empty stringProfile: desktop |
|||
public | styleClass | String | empty string |
A String identifier which can be used to logically group Nodes, specifically for an external style engine. A String identifier which can be used to logically group Nodes, specifically for an external style engine. This variable is exactly analogous to the styleClass attribute on an HTML element. empty stringProfile: common |
|||
public | transforms | Transform[] | empty |
Defines the sequence of javafx.scene.transform.Transform objects
to be applied to this Defines the sequence of javafx.scene.transform.Transform objects
to be applied to this By default, layoutBounds is defined as the local bounds with all the transforms in this sequence applied. emptyProfile: common |
|||
public | translateX | Number | 0 |
Defines the X coordinate of the translation that is added to the
transformed coordinates of this Defines the X coordinate of the translation that is added to the
transformed coordinates of this This variable can be used to alter the location of a Node without disturbing its layout bounds, which makes it useful for animating a node's location. 0Profile: common |
|||
public | translateY | Number | 0 |
Defines the Y coordinate of the translation that is added to the
transformed coordinates of this Defines the Y coordinate of the translation that is added to the
transformed coordinates of this This variable can be used to alter the location of a Node without disturbing its layout bounds, which makes it useful for animating a node's location. 0Profile: common |
|||
public | visible | Boolean | true |
Specifies whether this Specifies whether this Profile: common |
javafx.scene.layout.Resizable
access | name | type | Can Read | Can Init | Can Write | Default Value | description |
---|---|---|---|---|---|---|---|
public | height | Number |
The height of the The height of the Profile: common |
||||
public | width | Number |
The width of the The width of the Profile: common |
Function Summary
Inherited Functions
javafx.scene.layout.Container
- getPrefHeight(width: Number) : Number
-
Returns the preferred height of this container.
Returns the preferred height of this container. The default implementation of this function returns the height required to encompass the preferred layout bounds of all managed content. The
width
parameter is ignored.-
Parameters
- width
-
Returns
- Number
- getPrefWidth(height: Number) : Number
-
Returns the preferred width of this container.
Returns the preferred width of this container. The default implementation of this function returns the width required to encompass the preferred layout bounds of all managed content. The
height
parameter is ignored.-
Parameters
- height
-
Returns
- Number
- protected initSize() : Void
-
Called from
postinit
to enable the container to set the width and height if they have not already been initialized.Called from
postinit
to enable the container to set the width and height if they have not already been initialized. The default implementation will set the width/height to the preferred width/height of the container.
javafx.scene.Group
- protected impl_createPGNode() : com.sun.javafx.sg.PGNode
- public lookup(id: java.lang.String) : Node
javafx.scene.Parent
javafx.scene.Node
- public contains(localX: Number, localY: Number) : Boolean
-
Returns
true
if the given point (specified in the local coordinate space of thisNode
) is contained within the shape of thisNode
.Returns
true
if the given point (specified in the local coordinate space of thisNode
) is contained within the shape of thisNode
. Note that this method does not take visibility into account; the test is based on the geometry of thisNode
only.-
Parameters
- localX
- localY
-
Returns
- Boolean
Profile: common
- public contains(localPoint: Point2D) : Boolean
-
Returns
true
if the given point (specified in the local coordinate space of thisNode
) is contained within the shape of thisNode
.Returns
true
if the given point (specified in the local coordinate space of thisNode
) is contained within the shape of thisNode
. Note that this method does not take visibility into account; the test is based on the geometry of thisNode
only.-
Parameters
- localPoint
-
Returns
- Boolean
Profile: common
- protected impl_boundsChanged() : Void
-
Invoked by anything which may cause the boundsInLocal to change.
Invoked by anything which may cause the boundsInLocal to change. We do it this way to avoid actually having to recompute the bounds (ie, if I put an on replace trigger on boundsInLocal, then it would force the recomputation of bounds in every case even in situations where we don't need to be computing bounds. This way we don't do that).
Invoking this function will cause the entire chain of parent nodes to this node to be notified that their child bounds have changed, which may cause them to revalidate their bounds if somebody is listening to their bounds, or in the simplest case will just walk up the tree and notify that bounds have changed.
- protected abstract impl_createPGNode() : com.sun.javafx.sg.PGNode
- public impl_effectChanged() : Void
- public impl_getLeafTransform() : com.sun.javafx.geom.AffineTransform
- public impl_getPGNode() : com.sun.javafx.sg.PGNode
- public impl_getPivotX() : Number
- public impl_getPivotY() : Number
- public impl_isInitialized() : Boolean
-
Note I use a private variable / public function pair to avoid creation of a Location object and to prevent binding to the initialized variable.
Note I use a private variable / public function pair to avoid creation of a Location object and to prevent binding to the initialized variable.
-
Returns
- Boolean
- protected impl_processKeyEvent(e: KeyEvent) : Void
- protected impl_processMouseEvent(e: MouseEvent) : Void
- public impl_requestFocusImpl(f: com.sun.javafx.functions.Function0) : Void
- public impl_transformsChanged() : Void
- public intersects(localX: Number, localY: Number, localWidth: Number, localHeight: Number) : Boolean
-
Returns
true
if the given rectangle (specified in the local coordinate space of thisNode
) intersects the shape of thisNode
.Returns
true
if the given rectangle (specified in the local coordinate space of thisNode
) intersects the shape of thisNode
. Note that this method does not take visibility into account; the test is based on the geometry of thisNode
only. The default behavior of this function is simply to check if the given coordinates intersect with the local bounds.-
Parameters
- localX
- localY
- localWidth
- localHeight
-
Returns
- Boolean
Profile: common
- public intersects(localBounds: Bounds) : Boolean
-
Returns
true
if the given bounds (specified in the local coordinate space of thisNode
) intersects the shape of thisNode
.Returns
true
if the given bounds (specified in the local coordinate space of thisNode
) intersects the shape of thisNode
. Note that this method does not take visibility into account; the test is based on the geometry of thisNode
only. The default behavior of this function is simply to check if the given coordinates intersect with the local bounds.-
Parameters
- localBounds
-
Returns
- Boolean
Profile: common
- public localToParent(localX: Number, localY: Number) : Point2D
- public localToParent(localPoint: Point2D) : Point2D
- public localToParent(localBounds: Bounds) : Bounds
- public localToScene(localX: Number, localY: Number) : Point2D
-
Transforms a point from the local coordinate space of this
Node
into the coordinate space of its javafx.scene.Scene.Transforms a point from the local coordinate space of this
Node
into the coordinate space of its javafx.scene.Scene.-
Parameters
- localX
- localY
-
Returns
- Point2D
Profile: common
- public localToScene(localPoint: Point2D) : Point2D
-
Transforms a point from the local coordinate space of this
Node
into the coordinate space of its javafx.scene.Scene.Transforms a point from the local coordinate space of this
Node
into the coordinate space of its javafx.scene.Scene.-
Parameters
- localPoint
-
Returns
- Point2D
Profile: common
- public localToScene(localBounds: Bounds) : Bounds
-
Transforms a bounds from the local coordinate space of this
Node
into the coordinate space of its javafx.scene.Scene.Transforms a bounds from the local coordinate space of this
Node
into the coordinate space of its javafx.scene.Scene.-
Parameters
- localBounds
-
Returns
- Bounds
Profile: common
- public lookup(id: java.lang.String) : Node
-
Finds this
Node
, or the first subnode, with the given id.Finds this
Node
, or the first subnode, with the given id. If multiple subnodes have the same id, this function returns one of them. Which node it returns in that case is unspecified.-
Parameters
- id
- The id of the node to find
-
Returns
- Node
-
The first node, starting from this
Node
, which has an id ofid
.
Profile: common
- public parentToLocal(parentX: Number, parentY: Number) : Point2D
- public parentToLocal(parentPoint: Point2D) : Point2D
- public parentToLocal(parentBounds: Bounds) : Bounds
- public requestFocus() : Void
-
Requests that this
Node
get the input focus, and that thisNode
's top-level ancestor become the focused Window.Requests that this
Node
get the input focus, and that thisNode
's top-level ancestor become the focused Window. If this node is not part of a scene graph rooted in a stage that is visible and can accept input focus, then calls to request focus will not cause thisNode
to become focused.Profile: common
- public sceneToLocal(sceneX: Number, sceneY: Number) : Point2D
- public sceneToLocal(scenePoint: Point2D) : Point2D
-
Transforms a point from the coordinate space of the javafx.scene.Scene into the local coordinate space of this
Node
.Transforms a point from the coordinate space of the javafx.scene.Scene into the local coordinate space of this
Node
.-
Parameters
- scenePoint
-
Returns
- Point2D
Profile: common
- public sceneToLocal(sceneBounds: Bounds) : Bounds
-
Transforms a rectangle from the coordinate space of the javafx.scene.Scene into the local coordinate space of this
Node
.Transforms a rectangle from the coordinate space of the javafx.scene.Scene into the local coordinate space of this
Node
.-
Parameters
- sceneBounds
-
Returns
- Bounds
Profile: common
- public toBack() : Void
-
Moves this
Node
to the back of its sibling nodes in terms of z-order.Moves this
Node
to the back of its sibling nodes in terms of z-order. This is accomplished by moving thisNode
to the first position in its parent'scontent
sequence. This function has no effect if thisNode
is not part of a group.Profile: common
- public toFront() : Void
-
Moves this
Node
to the front of its sibling nodes in terms of z-order.Moves this
Node
to the front of its sibling nodes in terms of z-order. This is accomplished by moving thisNode
to the last position in its parent'scontent
sequence. This function has no effect if thisNode
is not part of a group.Profile: common
- public toString() : java.lang.String
javafx.scene.layout.Resizable
- public getMaxHeight() : Number
-
Returns the maximum height of the
Resizable
.Returns the maximum height of the
Resizable
. Layout containers should strive not to set theResizable
'sheight
larger than this value. This value is computed by the node subclass using applicable state and variable settings and is not directly settable by applications.-
Returns
- Number
Profile: common
- public getMaxWidth() : Number
-
Returns the preferred height of the
Resizable
.Returns the preferred height of the
Resizable
. Layout containers should strive not to set theResizable
'swidth
larger than this value. This value is computed by the node subclass using applicable state and variable settings and is not directly settable by applications.-
Returns
- Number
Profile: common
- public getMinHeight() : Number
-
Returns the minimum height of the
Resizable
.Returns the minimum height of the
Resizable
. Layout containers should strive not to set theNode
's height smaller than this value. This value is computed by the node subclass using applicable state and variable settings and is not directly settable by applications.-
Returns
- Number
Profile: common
- public getMinWidth() : Number
-
Returns the minimum width of the
Resizable
.Returns the minimum width of the
Resizable
. Layout containers should strive not to set theNode
's width smaller than this value. This value is calculated by the node subclass using applicable state and variable settings and is not directly settable by applications.-
Returns
- Number
Profile: common
- public abstract getPrefHeight(width: Number) : Number
-
Returns the preferred height of the
Resizable
given the specified width.Returns the preferred height of the
Resizable
given the specified width. If a particular width need not be factored into the result, -1 may be passed in as thewidth
parameter. Implementations of this function may also choose to ignorewidth
if it does not impact the result.Layout containers should set the
Resizable
'sheight
to this value whenever possible. This value is computed by the node subclass using applicable state and variable settings and is not directly settable by applications.-
Parameters
- width
-
Returns
- Number
Profile: common
- public abstract getPrefWidth(height: Number) : Number
-
Returns the preferred width of the
Resizable
given the specified height.Returns the preferred width of the
Resizable
given the specified height. If a particular height need not be factored into the result, -1 may be passed in as theheight
parameter. Implementations of this function may also choose to ignoreheight
if it does not impact the result.Layout containers should set the
Resizable
'swidth
to this value whenever possible. This value is computed by the node subclass using applicable state and variable settings and is not directly settable by applications.-
Parameters
- height
-
Returns
- Number
Profile: common