Class Region

All Implemented Interfaces:
Styleable, EventTarget
Direct Known Subclasses:
Axis, Chart, Control, Pane, TableColumnHeader, VirtualFlow

public class Region extends Parent
Region is the base class for all JavaFX Node-based UI Controls, and all layout containers. It is a resizable Parent node which can be styled from CSS. It can have multiple backgrounds and borders. It is designed to support as much of the CSS3 specification for backgrounds and borders as is relevant to JavaFX. The full specification is available at the W3C.

Every Region has its layout bounds, which are specified to be (0, 0, width, height). A Region might draw outside these bounds. The content area of a Region is the area which is occupied for the layout of its children. This area is, by default, the same as the layout bounds of the Region, but can be modified by either the properties of a border (either with BorderStrokes or BorderImages), and by padding. The padding can be negative, such that the content area of a Region might extend beyond the layout bounds of the Region, but does not affect the layout bounds.

A Region has a Background, and a Border, although either or both of these might be empty. The Background of a Region is made up of zero or more BackgroundFills, and zero or more BackgroundImages. Likewise, the border of a Region is defined by its Border, which is made up of zero or more BorderStrokes and zero or more BorderImages. All BackgroundFills are drawn first, followed by BackgroundImages, BorderStrokes, and finally BorderImages. The content is drawn above all backgrounds and borders. If a BorderImage is present (and loaded all images properly), then no BorderStrokes are actually drawn, although they are considered for computing the position of the content area (see the stroke width property of a BorderStroke). These semantics are in line with the CSS 3 specification. The purpose of these semantics are to allow an application to specify a fallback BorderStroke to be displayed in the case that an ImageStroke fails to download or load.

By default a Region appears as a Rectangle. A BackgroundFill radii might cause the Rectangle to appear rounded. This affects not only making the visuals look like a rounded rectangle, but it also causes the picking behavior of the Region to act like a rounded rectangle, such that locations outside the corner radii are ignored. A Region can be made to use any shape, however, by specifying the shape property. If a shape is specified, then all BackgroundFills, BackgroundImages, and BorderStrokes will be applied to the shape. BorderImages are not used for Regions which have a shape specified.

Although the layout bounds of a Region are not influenced by any Border or Background, the content area insets and the picking area of the Region are. The insets of the Region define the distance between the edge of the layout bounds and the edge of the content area. For example, if the Region layout bounds are (x=0, y=0, width=200, height=100), and the insets are (top=10, right=20, bottom=30, left=40), then the content area bounds will be (x=40, y=10, width=140, height=60). A Region subclass which is laying out its children should compute and honor these content area bounds.

By default a Region inherits the layout behavior of its superclass, Parent, which means that it will resize any resizable child nodes to their preferred size, but will not reposition them. If an application needs more specific layout behavior, then it should use one of the Region subclasses: StackPane, HBox, VBox, TilePane, FlowPane, BorderPane, GridPane, or AnchorPane.

To implement a more custom layout, a Region subclass must override computePrefWidth, computePrefHeight, and layoutChildren. Note that layoutChildren is called automatically by the scene graph while executing a top-down layout pass and it should not be invoked directly by the region subclass.

Region subclasses which layout their children will position nodes by setting layoutX/layoutY and do not alter translateX/translateY, which are reserved for adjustments and animation.

Since:
JavaFX 2.0
  • Property Details

    • snapToPixel

      public final BooleanProperty snapToPixelProperty
      Defines whether this region adjusts position, spacing, and size values of its children to pixel boundaries. This defaults to true, which is generally the expected behavior in order to have crisp user interfaces. A value of false will allow for fractional alignment, which may lead to "fuzzy" looking borders.
      See Also:
    • padding

      public final ObjectProperty<Insets> paddingProperty
      The top, right, bottom, and left padding around the region's content. This space will be included in the calculation of the region's minimum and preferred sizes. By default, padding is Insets.EMPTY. Setting the value to null should be avoided.
      See Also:
    • background

      public final ObjectProperty<Background> backgroundProperty
      The background of the Region, which is made up of zero or more BackgroundFills, and zero or more BackgroundImages. It is possible for a Background to be empty, where it has neither fills nor images, and is semantically equivalent to null.
      Since:
      JavaFX 8.0
      See Also:
    • border

      public final ObjectProperty<Border> borderProperty
      The border of the Region, which is made up of zero or more BorderStrokes, and zero or more BorderImages. It is possible for a Border to be empty, where it has neither strokes nor images, and is semantically equivalent to null.
      Since:
      JavaFX 8.0
      See Also:
    • opaqueInsets

      public final ObjectProperty<Insets> opaqueInsetsProperty
      Defines the area of the region within which completely opaque pixels are drawn. This is used for various performance optimizations. The pixels within this area MUST BE fully opaque, or rendering artifacts will result. It is the responsibility of the application, either via code or via CSS, to ensure that the opaqueInsets is correct for a Region based on the backgrounds and borders of that region. The values for each of the insets must be real numbers, not NaN or Infinity. If no known insets exist, then the opaqueInsets should be set to null.
      Since:
      JavaFX 8.0
      See Also:
    • insets

      public final ReadOnlyObjectProperty<Insets> insetsProperty
      The insets of the Region define the distance from the edge of the region (its layout bounds, or (0, 0, width, height)) to the edge of the content area. All child nodes should be laid out within the content area. The insets are computed based on the Border which has been specified, if any, and also the padding.
      Since:
      JavaFX 8.0
      See Also:
    • width

      public final ReadOnlyDoubleProperty widthProperty
      The width of this resizable node. This property is set by the region's parent during layout and may not be set by the application. If an application needs to explicitly control the size of a region, it should override its preferred size range by setting the minWidth, prefWidth, and maxWidth properties.
      See Also:
    • height

      public final ReadOnlyDoubleProperty heightProperty
      The height of this resizable node. This property is set by the region's parent during layout and may not be set by the application. If an application needs to explicitly control the size of a region, it should override its preferred size range by setting the minHeight, prefHeight, and maxHeight properties.
      See Also:
    • minWidth

      public final DoubleProperty minWidthProperty
      Property for overriding the region's computed minimum width. This should only be set if the region's internally computed minimum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that minWidth(forHeight) will return the region's internally computed minimum width.

      Setting this value to the USE_PREF_SIZE flag will cause minWidth(forHeight) to return the region's preferred width, enabling applications to easily restrict the resizability of the region.

      See Also:
    • minHeight

      public final DoubleProperty minHeightProperty
      Property for overriding the region's computed minimum height. This should only be set if the region's internally computed minimum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that minHeight(forWidth) will return the region's internally computed minimum height.

      Setting this value to the USE_PREF_SIZE flag will cause minHeight(forWidth) to return the region's preferred height, enabling applications to easily restrict the resizability of the region.

      See Also:
    • prefWidth

      public final DoubleProperty prefWidthProperty
      Property for overriding the region's computed preferred width. This should only be set if the region's internally computed preferred width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefWidth(forHeight) will return the region's internally computed preferred width.

      See Also:
    • prefHeight

      public final DoubleProperty prefHeightProperty
      Property for overriding the region's computed preferred height. This should only be set if the region's internally computed preferred height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefHeight(forWidth) will return the region's internally computed preferred width.

      See Also:
    • maxWidth

      public final DoubleProperty maxWidthProperty
      Property for overriding the region's computed maximum width. This should only be set if the region's internally computed maximum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxWidth(forHeight) will return the region's internally computed maximum width.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxWidth(forHeight) to return the region's preferred width, enabling applications to easily restrict the resizability of the region.

      See Also:
    • maxHeight

      public final DoubleProperty maxHeightProperty
      Property for overriding the region's computed maximum height. This should only be set if the region's internally computed maximum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxHeight(forWidth) will return the region's internally computed maximum height.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxHeight(forWidth) to return the region's preferred height, enabling applications to easily restrict the resizability of the region.

      See Also:
    • shape

      public final ObjectProperty<Shape> shapeProperty
      When specified, the Shape will cause the region to be rendered as the specified shape rather than as a rounded rectangle. When null, the Region is rendered as a rounded rectangle. When rendered as a Shape, any Background is used to fill the shape, although any background insets are ignored as are background radii. Any BorderStrokes defined are used for stroking the shape. Any BorderImages are ignored.
      Default value:
      null
      Since:
      JavaFX 8.0
      See Also:
    • scaleShape

      public final BooleanProperty scaleShapeProperty
      Specifies whether the shape, if defined, is scaled to match the size of the Region. true means the shape is scaled to fit the size of the Region, false means the shape is at its source size, its positioning depends on the value of centerShape.
      Default value:
      true
      Since:
      JavaFX 8.0
      See Also:
    • centerShape

      public final BooleanProperty centerShapeProperty
      Defines whether the shape is centered within the Region's width or height. true means the shape centered within the Region's width and height, false means the shape is positioned at its source position.
      Default value:
      true
      Since:
      JavaFX 8.0
      See Also:
    • cacheShape

      public final BooleanProperty cacheShapeProperty
      Defines a hint to the system indicating that the Shape used to define the region's background is stable and would benefit from caching.
      Default value:
      true
      Since:
      JavaFX 8.0
      See Also:
  • Field Details

  • Constructor Details

    • Region

      public Region()
      Creates a new Region with an empty Background and and empty Border. The Region defaults to having pickOnBounds set to true, meaning that any pick (mouse picking or touch picking etc) that occurs within the bounds in local of the Region will return true, regardless of whether the Region is filled or transparent.
  • Method Details

    • isSnapToPixel

      public final boolean isSnapToPixel()
      Gets the value of the snapToPixel property.
      Property description:
      Defines whether this region adjusts position, spacing, and size values of its children to pixel boundaries. This defaults to true, which is generally the expected behavior in order to have crisp user interfaces. A value of false will allow for fractional alignment, which may lead to "fuzzy" looking borders.
      Returns:
      the value of the snapToPixel property
      See Also:
    • setSnapToPixel

      public final void setSnapToPixel(boolean value)
      Sets the value of the snapToPixel property.
      Property description:
      Defines whether this region adjusts position, spacing, and size values of its children to pixel boundaries. This defaults to true, which is generally the expected behavior in order to have crisp user interfaces. A value of false will allow for fractional alignment, which may lead to "fuzzy" looking borders.
      Parameters:
      value - the value for the snapToPixel property
      See Also:
    • snapToPixelProperty

      public final BooleanProperty snapToPixelProperty()
      Defines whether this region adjusts position, spacing, and size values of its children to pixel boundaries. This defaults to true, which is generally the expected behavior in order to have crisp user interfaces. A value of false will allow for fractional alignment, which may lead to "fuzzy" looking borders.
      Returns:
      the snapToPixel property
      See Also:
    • setPadding

      public final void setPadding(Insets value)
      Sets the value of the padding property.
      Property description:
      The top, right, bottom, and left padding around the region's content. This space will be included in the calculation of the region's minimum and preferred sizes. By default, padding is Insets.EMPTY. Setting the value to null should be avoided.
      Parameters:
      value - the value for the padding property
      See Also:
    • getPadding

      public final Insets getPadding()
      Gets the value of the padding property.
      Property description:
      The top, right, bottom, and left padding around the region's content. This space will be included in the calculation of the region's minimum and preferred sizes. By default, padding is Insets.EMPTY. Setting the value to null should be avoided.
      Returns:
      the value of the padding property
      See Also:
    • paddingProperty

      public final ObjectProperty<Insets> paddingProperty()
      The top, right, bottom, and left padding around the region's content. This space will be included in the calculation of the region's minimum and preferred sizes. By default, padding is Insets.EMPTY. Setting the value to null should be avoided.
      Returns:
      the padding property
      See Also:
    • setBackground

      public final void setBackground(Background value)
      Sets the value of the background property.
      Property description:
      The background of the Region, which is made up of zero or more BackgroundFills, and zero or more BackgroundImages. It is possible for a Background to be empty, where it has neither fills nor images, and is semantically equivalent to null.
      Parameters:
      value - the value for the background property
      Since:
      JavaFX 8.0
      See Also:
    • getBackground

      public final Background getBackground()
      Gets the value of the background property.
      Property description:
      The background of the Region, which is made up of zero or more BackgroundFills, and zero or more BackgroundImages. It is possible for a Background to be empty, where it has neither fills nor images, and is semantically equivalent to null.
      Returns:
      the value of the background property
      Since:
      JavaFX 8.0
      See Also:
    • backgroundProperty

      public final ObjectProperty<Background> backgroundProperty()
      The background of the Region, which is made up of zero or more BackgroundFills, and zero or more BackgroundImages. It is possible for a Background to be empty, where it has neither fills nor images, and is semantically equivalent to null.
      Returns:
      the background property
      Since:
      JavaFX 8.0
      See Also:
    • setBorder

      public final void setBorder(Border value)
      Sets the value of the border property.
      Property description:
      The border of the Region, which is made up of zero or more BorderStrokes, and zero or more BorderImages. It is possible for a Border to be empty, where it has neither strokes nor images, and is semantically equivalent to null.
      Parameters:
      value - the value for the border property
      Since:
      JavaFX 8.0
      See Also:
    • getBorder

      public final Border getBorder()
      Gets the value of the border property.
      Property description:
      The border of the Region, which is made up of zero or more BorderStrokes, and zero or more BorderImages. It is possible for a Border to be empty, where it has neither strokes nor images, and is semantically equivalent to null.
      Returns:
      the value of the border property
      Since:
      JavaFX 8.0
      See Also:
    • borderProperty

      public final ObjectProperty<Border> borderProperty()
      The border of the Region, which is made up of zero or more BorderStrokes, and zero or more BorderImages. It is possible for a Border to be empty, where it has neither strokes nor images, and is semantically equivalent to null.
      Returns:
      the border property
      Since:
      JavaFX 8.0
      See Also:
    • opaqueInsetsProperty

      public final ObjectProperty<Insets> opaqueInsetsProperty()
      Defines the area of the region within which completely opaque pixels are drawn. This is used for various performance optimizations. The pixels within this area MUST BE fully opaque, or rendering artifacts will result. It is the responsibility of the application, either via code or via CSS, to ensure that the opaqueInsets is correct for a Region based on the backgrounds and borders of that region. The values for each of the insets must be real numbers, not NaN or Infinity. If no known insets exist, then the opaqueInsets should be set to null.
      Returns:
      the opaque insets property
      Since:
      JavaFX 8.0
      See Also:
    • setOpaqueInsets

      public final void setOpaqueInsets(Insets value)
      Sets the value of the opaqueInsets property.
      Property description:
      Defines the area of the region within which completely opaque pixels are drawn. This is used for various performance optimizations. The pixels within this area MUST BE fully opaque, or rendering artifacts will result. It is the responsibility of the application, either via code or via CSS, to ensure that the opaqueInsets is correct for a Region based on the backgrounds and borders of that region. The values for each of the insets must be real numbers, not NaN or Infinity. If no known insets exist, then the opaqueInsets should be set to null.
      Parameters:
      value - the value for the opaqueInsets property
      Since:
      JavaFX 8.0
      See Also:
    • getOpaqueInsets

      public final Insets getOpaqueInsets()
      Gets the value of the opaqueInsets property.
      Property description:
      Defines the area of the region within which completely opaque pixels are drawn. This is used for various performance optimizations. The pixels within this area MUST BE fully opaque, or rendering artifacts will result. It is the responsibility of the application, either via code or via CSS, to ensure that the opaqueInsets is correct for a Region based on the backgrounds and borders of that region. The values for each of the insets must be real numbers, not NaN or Infinity. If no known insets exist, then the opaqueInsets should be set to null.
      Returns:
      the value of the opaqueInsets property
      Since:
      JavaFX 8.0
      See Also:
    • getInsets

      public final Insets getInsets()
      Gets the value of the insets property.
      Property description:
      The insets of the Region define the distance from the edge of the region (its layout bounds, or (0, 0, width, height)) to the edge of the content area. All child nodes should be laid out within the content area. The insets are computed based on the Border which has been specified, if any, and also the padding.
      Returns:
      the value of the insets property
      Since:
      JavaFX 8.0
      See Also:
    • insetsProperty

      public final ReadOnlyObjectProperty<Insets> insetsProperty()
      The insets of the Region define the distance from the edge of the region (its layout bounds, or (0, 0, width, height)) to the edge of the content area. All child nodes should be laid out within the content area. The insets are computed based on the Border which has been specified, if any, and also the padding.
      Returns:
      the insets property
      Since:
      JavaFX 8.0
      See Also:
    • setWidth

      protected void setWidth(double value)
      Sets the value of the width property.
      Property description:
      The width of this resizable node. This property is set by the region's parent during layout and may not be set by the application. If an application needs to explicitly control the size of a region, it should override its preferred size range by setting the minWidth, prefWidth, and maxWidth properties.
      Parameters:
      value - the value for the width property
      See Also:
    • getWidth

      public final double getWidth()
      Gets the value of the width property.
      Property description:
      The width of this resizable node. This property is set by the region's parent during layout and may not be set by the application. If an application needs to explicitly control the size of a region, it should override its preferred size range by setting the minWidth, prefWidth, and maxWidth properties.
      Returns:
      the value of the width property
      See Also:
    • widthProperty

      public final ReadOnlyDoubleProperty widthProperty()
      The width of this resizable node. This property is set by the region's parent during layout and may not be set by the application. If an application needs to explicitly control the size of a region, it should override its preferred size range by setting the minWidth, prefWidth, and maxWidth properties.
      Returns:
      the width property
      See Also:
    • setHeight

      protected void setHeight(double value)
      Sets the value of the height property.
      Property description:
      The height of this resizable node. This property is set by the region's parent during layout and may not be set by the application. If an application needs to explicitly control the size of a region, it should override its preferred size range by setting the minHeight, prefHeight, and maxHeight properties.
      Parameters:
      value - the value for the height property
      See Also:
    • getHeight

      public final double getHeight()
      Gets the value of the height property.
      Property description:
      The height of this resizable node. This property is set by the region's parent during layout and may not be set by the application. If an application needs to explicitly control the size of a region, it should override its preferred size range by setting the minHeight, prefHeight, and maxHeight properties.
      Returns:
      the value of the height property
      See Also:
    • heightProperty

      public final ReadOnlyDoubleProperty heightProperty()
      The height of this resizable node. This property is set by the region's parent during layout and may not be set by the application. If an application needs to explicitly control the size of a region, it should override its preferred size range by setting the minHeight, prefHeight, and maxHeight properties.
      Returns:
      the height property
      See Also:
    • setMinWidth

      public final void setMinWidth(double value)
      Sets the value of the minWidth property.
      Property description:
      Property for overriding the region's computed minimum width. This should only be set if the region's internally computed minimum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that minWidth(forHeight) will return the region's internally computed minimum width.

      Setting this value to the USE_PREF_SIZE flag will cause minWidth(forHeight) to return the region's preferred width, enabling applications to easily restrict the resizability of the region.

      Parameters:
      value - the value for the minWidth property
      See Also:
    • getMinWidth

      public final double getMinWidth()
      Gets the value of the minWidth property.
      Property description:
      Property for overriding the region's computed minimum width. This should only be set if the region's internally computed minimum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that minWidth(forHeight) will return the region's internally computed minimum width.

      Setting this value to the USE_PREF_SIZE flag will cause minWidth(forHeight) to return the region's preferred width, enabling applications to easily restrict the resizability of the region.

      Returns:
      the value of the minWidth property
      See Also:
    • minWidthProperty

      public final DoubleProperty minWidthProperty()
      Property for overriding the region's computed minimum width. This should only be set if the region's internally computed minimum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that minWidth(forHeight) will return the region's internally computed minimum width.

      Setting this value to the USE_PREF_SIZE flag will cause minWidth(forHeight) to return the region's preferred width, enabling applications to easily restrict the resizability of the region.

      Returns:
      the minWidth property
      See Also:
    • setMinHeight

      public final void setMinHeight(double value)
      Sets the value of the minHeight property.
      Property description:
      Property for overriding the region's computed minimum height. This should only be set if the region's internally computed minimum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that minHeight(forWidth) will return the region's internally computed minimum height.

      Setting this value to the USE_PREF_SIZE flag will cause minHeight(forWidth) to return the region's preferred height, enabling applications to easily restrict the resizability of the region.

      Parameters:
      value - the value for the minHeight property
      See Also:
    • getMinHeight

      public final double getMinHeight()
      Gets the value of the minHeight property.
      Property description:
      Property for overriding the region's computed minimum height. This should only be set if the region's internally computed minimum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that minHeight(forWidth) will return the region's internally computed minimum height.

      Setting this value to the USE_PREF_SIZE flag will cause minHeight(forWidth) to return the region's preferred height, enabling applications to easily restrict the resizability of the region.

      Returns:
      the value of the minHeight property
      See Also:
    • minHeightProperty

      public final DoubleProperty minHeightProperty()
      Property for overriding the region's computed minimum height. This should only be set if the region's internally computed minimum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that minHeight(forWidth) will return the region's internally computed minimum height.

      Setting this value to the USE_PREF_SIZE flag will cause minHeight(forWidth) to return the region's preferred height, enabling applications to easily restrict the resizability of the region.

      Returns:
      the minHeight property
      See Also:
    • setMinSize

      public void setMinSize(double minWidth, double minHeight)
      Convenience method for overriding the region's computed minimum width and height. This should only be called if the region's internally computed minimum size doesn't meet the application's layout needs.
      Parameters:
      minWidth - the override value for minimum width
      minHeight - the override value for minimum height
      See Also:
    • setPrefWidth

      public final void setPrefWidth(double value)
      Sets the value of the prefWidth property.
      Property description:
      Property for overriding the region's computed preferred width. This should only be set if the region's internally computed preferred width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefWidth(forHeight) will return the region's internally computed preferred width.

      Parameters:
      value - the value for the prefWidth property
      See Also:
    • getPrefWidth

      public final double getPrefWidth()
      Gets the value of the prefWidth property.
      Property description:
      Property for overriding the region's computed preferred width. This should only be set if the region's internally computed preferred width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefWidth(forHeight) will return the region's internally computed preferred width.

      Returns:
      the value of the prefWidth property
      See Also:
    • prefWidthProperty

      public final DoubleProperty prefWidthProperty()
      Property for overriding the region's computed preferred width. This should only be set if the region's internally computed preferred width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefWidth(forHeight) will return the region's internally computed preferred width.

      Returns:
      the prefWidth property
      See Also:
    • setPrefHeight

      public final void setPrefHeight(double value)
      Sets the value of the prefHeight property.
      Property description:
      Property for overriding the region's computed preferred height. This should only be set if the region's internally computed preferred height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefHeight(forWidth) will return the region's internally computed preferred width.

      Parameters:
      value - the value for the prefHeight property
      See Also:
    • getPrefHeight

      public final double getPrefHeight()
      Gets the value of the prefHeight property.
      Property description:
      Property for overriding the region's computed preferred height. This should only be set if the region's internally computed preferred height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefHeight(forWidth) will return the region's internally computed preferred width.

      Returns:
      the value of the prefHeight property
      See Also:
    • prefHeightProperty

      public final DoubleProperty prefHeightProperty()
      Property for overriding the region's computed preferred height. This should only be set if the region's internally computed preferred height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getPrefHeight(forWidth) will return the region's internally computed preferred width.

      Returns:
      the prefHeight property
      See Also:
    • setPrefSize

      public void setPrefSize(double prefWidth, double prefHeight)
      Convenience method for overriding the region's computed preferred width and height. This should only be called if the region's internally computed preferred size doesn't meet the application's layout needs.
      Parameters:
      prefWidth - the override value for preferred width
      prefHeight - the override value for preferred height
      See Also:
    • setMaxWidth

      public final void setMaxWidth(double value)
      Sets the value of the maxWidth property.
      Property description:
      Property for overriding the region's computed maximum width. This should only be set if the region's internally computed maximum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxWidth(forHeight) will return the region's internally computed maximum width.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxWidth(forHeight) to return the region's preferred width, enabling applications to easily restrict the resizability of the region.

      Parameters:
      value - the value for the maxWidth property
      See Also:
    • getMaxWidth

      public final double getMaxWidth()
      Gets the value of the maxWidth property.
      Property description:
      Property for overriding the region's computed maximum width. This should only be set if the region's internally computed maximum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxWidth(forHeight) will return the region's internally computed maximum width.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxWidth(forHeight) to return the region's preferred width, enabling applications to easily restrict the resizability of the region.

      Returns:
      the value of the maxWidth property
      See Also:
    • maxWidthProperty

      public final DoubleProperty maxWidthProperty()
      Property for overriding the region's computed maximum width. This should only be set if the region's internally computed maximum width doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxWidth(forHeight) will return the region's internally computed maximum width.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxWidth(forHeight) to return the region's preferred width, enabling applications to easily restrict the resizability of the region.

      Returns:
      the maxWidth property
      See Also:
    • setMaxHeight

      public final void setMaxHeight(double value)
      Sets the value of the maxHeight property.
      Property description:
      Property for overriding the region's computed maximum height. This should only be set if the region's internally computed maximum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxHeight(forWidth) will return the region's internally computed maximum height.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxHeight(forWidth) to return the region's preferred height, enabling applications to easily restrict the resizability of the region.

      Parameters:
      value - the value for the maxHeight property
      See Also:
    • getMaxHeight

      public final double getMaxHeight()
      Gets the value of the maxHeight property.
      Property description:
      Property for overriding the region's computed maximum height. This should only be set if the region's internally computed maximum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxHeight(forWidth) will return the region's internally computed maximum height.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxHeight(forWidth) to return the region's preferred height, enabling applications to easily restrict the resizability of the region.

      Returns:
      the value of the maxHeight property
      See Also:
    • maxHeightProperty

      public final DoubleProperty maxHeightProperty()
      Property for overriding the region's computed maximum height. This should only be set if the region's internally computed maximum height doesn't meet the application's layout needs.

      Defaults to the USE_COMPUTED_SIZE flag, which means that getMaxHeight(forWidth) will return the region's internally computed maximum height.

      Setting this value to the USE_PREF_SIZE flag will cause getMaxHeight(forWidth) to return the region's preferred height, enabling applications to easily restrict the resizability of the region.

      Returns:
      the maxHeight property
      See Also:
    • setMaxSize

      public void setMaxSize(double maxWidth, double maxHeight)
      Convenience method for overriding the region's computed maximum width and height. This should only be called if the region's internally computed maximum size doesn't meet the application's layout needs.
      Parameters:
      maxWidth - the override value for maximum width
      maxHeight - the override value for maximum height
      See Also:
    • getShape

      public final Shape getShape()
      Gets the value of the shape property.
      Property description:
      When specified, the Shape will cause the region to be rendered as the specified shape rather than as a rounded rectangle. When null, the Region is rendered as a rounded rectangle. When rendered as a Shape, any Background is used to fill the shape, although any background insets are ignored as are background radii. Any BorderStrokes defined are used for stroking the shape. Any BorderImages are ignored.
      Default value:
      null
      Returns:
      the value of the shape property
      Since:
      JavaFX 8.0
      See Also:
    • setShape

      public final void setShape(Shape value)
      Sets the value of the shape property.
      Property description:
      When specified, the Shape will cause the region to be rendered as the specified shape rather than as a rounded rectangle. When null, the Region is rendered as a rounded rectangle. When rendered as a Shape, any Background is used to fill the shape, although any background insets are ignored as are background radii. Any BorderStrokes defined are used for stroking the shape. Any BorderImages are ignored.
      Default value:
      null
      Parameters:
      value - the value for the shape property
      Since:
      JavaFX 8.0
      See Also:
    • shapeProperty

      public final ObjectProperty<Shape> shapeProperty()
      When specified, the Shape will cause the region to be rendered as the specified shape rather than as a rounded rectangle. When null, the Region is rendered as a rounded rectangle. When rendered as a Shape, any Background is used to fill the shape, although any background insets are ignored as are background radii. Any BorderStrokes defined are used for stroking the shape. Any BorderImages are ignored.
      Default value:
      null
      Returns:
      the shape property
      Since:
      JavaFX 8.0
      See Also:
    • setScaleShape

      public final void setScaleShape(boolean value)
      Sets the value of the scaleShape property.
      Property description:
      Specifies whether the shape, if defined, is scaled to match the size of the Region. true means the shape is scaled to fit the size of the Region, false means the shape is at its source size, its positioning depends on the value of centerShape.
      Default value:
      true
      Parameters:
      value - the value for the scaleShape property
      Since:
      JavaFX 8.0
      See Also:
    • isScaleShape

      public final boolean isScaleShape()
      Gets the value of the scaleShape property.
      Property description:
      Specifies whether the shape, if defined, is scaled to match the size of the Region. true means the shape is scaled to fit the size of the Region, false means the shape is at its source size, its positioning depends on the value of centerShape.
      Default value:
      true
      Returns:
      the value of the scaleShape property
      Since:
      JavaFX 8.0
      See Also:
    • scaleShapeProperty

      public final BooleanProperty scaleShapeProperty()
      Specifies whether the shape, if defined, is scaled to match the size of the Region. true means the shape is scaled to fit the size of the Region, false means the shape is at its source size, its positioning depends on the value of centerShape.
      Default value:
      true
      Returns:
      the scaleShape property
      Since:
      JavaFX 8.0
      See Also:
    • setCenterShape

      public final void setCenterShape(boolean value)
      Sets the value of the centerShape property.
      Property description:
      Defines whether the shape is centered within the Region's width or height. true means the shape centered within the Region's width and height, false means the shape is positioned at its source position.
      Default value:
      true
      Parameters:
      value - the value for the centerShape property
      Since:
      JavaFX 8.0
      See Also:
    • isCenterShape

      public final boolean isCenterShape()
      Gets the value of the centerShape property.
      Property description:
      Defines whether the shape is centered within the Region's width or height. true means the shape centered within the Region's width and height, false means the shape is positioned at its source position.
      Default value:
      true
      Returns:
      the value of the centerShape property
      Since:
      JavaFX 8.0
      See Also:
    • centerShapeProperty

      public final BooleanProperty centerShapeProperty()
      Defines whether the shape is centered within the Region's width or height. true means the shape centered within the Region's width and height, false means the shape is positioned at its source position.
      Default value:
      true
      Returns:
      the centerShape property
      Since:
      JavaFX 8.0
      See Also:
    • setCacheShape

      public final void setCacheShape(boolean value)
      Sets the value of the cacheShape property.
      Property description:
      Defines a hint to the system indicating that the Shape used to define the region's background is stable and would benefit from caching.
      Default value:
      true
      Parameters:
      value - the value for the cacheShape property
      Since:
      JavaFX 8.0
      See Also:
    • isCacheShape

      public final boolean isCacheShape()
      Gets the value of the cacheShape property.
      Property description:
      Defines a hint to the system indicating that the Shape used to define the region's background is stable and would benefit from caching.
      Default value:
      true
      Returns:
      the value of the cacheShape property
      Since:
      JavaFX 8.0
      See Also:
    • cacheShapeProperty

      public final BooleanProperty cacheShapeProperty()
      Defines a hint to the system indicating that the Shape used to define the region's background is stable and would benefit from caching.
      Default value:
      true
      Returns:
      the cacheShape property
      Since:
      JavaFX 8.0
      See Also:
    • isResizable

      public boolean isResizable()
      Returns true since all Regions are resizable.
      Overrides:
      isResizable in class Node
      Returns:
      whether this node can be resized by its parent during layout
      See Also:
    • resize

      public void resize(double width, double height)
      Invoked by the region's parent during layout to set the region's width and height. Applications should not invoke this method directly. If an application needs to directly set the size of the region, it should override its size constraints by calling setMinSize(), setPrefSize(), or setMaxSize() and it's parent will honor those overrides during layout.
      Overrides:
      resize in class Node
      Parameters:
      width - the target layout bounds width
      height - the target layout bounds height
      See Also:
    • minWidth

      public final double minWidth(double height)
      Called during layout to determine the minimum width for this node. Returns the value from computeMinWidth(forHeight) unless the application overrode the minimum width by setting the minWidth property.
      Overrides:
      minWidth in class Node
      Parameters:
      height - the height that should be used if minimum width depends on it
      Returns:
      the minimum width that this node should be resized to during layout
      See Also:
    • minHeight

      public final double minHeight(double width)
      Called during layout to determine the minimum height for this node. Returns the value from computeMinHeight(forWidth) unless the application overrode the minimum height by setting the minHeight property.
      Overrides:
      minHeight in class Node
      Parameters:
      width - the width that should be used if minimum height depends on it
      Returns:
      the minimum height that this node should be resized to during layout
      See Also:
    • prefWidth

      public final double prefWidth(double height)
      Called during layout to determine the preferred width for this node. Returns the value from computePrefWidth(forHeight) unless the application overrode the preferred width by setting the prefWidth property.
      Overrides:
      prefWidth in class Node
      Parameters:
      height - the height that should be used if preferred width depends on it
      Returns:
      the preferred width that this node should be resized to during layout
      See Also:
    • prefHeight

      public final double prefHeight(double width)
      Called during layout to determine the preferred height for this node. Returns the value from computePrefHeight(forWidth) unless the application overrode the preferred height by setting the prefHeight property.
      Overrides:
      prefHeight in class Node
      Parameters:
      width - the width that should be used if preferred height depends on it
      Returns:
      the preferred height that this node should be resized to during layout
      See Also:
    • maxWidth

      public final double maxWidth(double height)
      Called during layout to determine the maximum width for this node. Returns the value from computeMaxWidth(forHeight) unless the application overrode the maximum width by setting the maxWidth property.
      Overrides:
      maxWidth in class Node
      Parameters:
      height - the height that should be used if maximum width depends on it
      Returns:
      the maximum width that this node should be resized to during layout
      See Also:
    • maxHeight

      public final double maxHeight(double width)
      Called during layout to determine the maximum height for this node. Returns the value from computeMaxHeight(forWidth) unless the application overrode the maximum height by setting the maxHeight property.
      Overrides:
      maxHeight in class Node
      Parameters:
      width - the width that should be used if maximum height depends on it
      Returns:
      the maximum height that this node should be resized to during layout
      See Also:
    • computeMinWidth

      protected double computeMinWidth(double height)
      Computes the minimum width of this region. Returns the sum of the left and right insets by default. region subclasses should override this method to return an appropriate value based on their content and layout strategy. If the subclass doesn't have a VERTICAL content bias, then the height parameter can be ignored.
      Overrides:
      computeMinWidth in class Parent
      Parameters:
      height - the height that should be used if min width depends on it
      Returns:
      the computed minimum width of this region
    • computeMinHeight

      protected double computeMinHeight(double width)
      Computes the minimum height of this region. Returns the sum of the top and bottom insets by default. Region subclasses should override this method to return an appropriate value based on their content and layout strategy. If the subclass doesn't have a HORIZONTAL content bias, then the width parameter can be ignored.
      Overrides:
      computeMinHeight in class Parent
      Parameters:
      width - the width that should be used if min height depends on it
      Returns:
      the computed minimum height for this region
    • computePrefWidth

      protected double computePrefWidth(double height)
      Computes the preferred width of this region for the given height. Region subclasses should override this method to return an appropriate value based on their content and layout strategy. If the subclass doesn't have a VERTICAL content bias, then the height parameter can be ignored.
      Overrides:
      computePrefWidth in class Parent
      Parameters:
      height - the height that should be used if preferred width depends on it
      Returns:
      the computed preferred width for this region
    • computePrefHeight

      protected double computePrefHeight(double width)
      Computes the preferred height of this region for the given width; Region subclasses should override this method to return an appropriate value based on their content and layout strategy. If the subclass doesn't have a HORIZONTAL content bias, then the width parameter can be ignored.
      Overrides:
      computePrefHeight in class Parent
      Parameters:
      width - the width that should be used if preferred height depends on it
      Returns:
      the computed preferred height for this region
    • computeMaxWidth

      protected double computeMaxWidth(double height)
      Computes the maximum width for this region. Returns Double.MAX_VALUE by default. Region subclasses may override this method to return an different value based on their content and layout strategy. If the subclass doesn't have a VERTICAL content bias, then the height parameter can be ignored.
      Parameters:
      height - The height of the Region, in case this value might dictate the maximum width
      Returns:
      the computed maximum width for this region
    • computeMaxHeight

      protected double computeMaxHeight(double width)
      Computes the maximum height of this region. Returns Double.MAX_VALUE by default. Region subclasses may override this method to return a different value based on their content and layout strategy. If the subclass doesn't have a HORIZONTAL content bias, then the width parameter can be ignored.
      Parameters:
      width - The width of the Region, in case this value might dictate the maximum height
      Returns:
      the computed maximum height for this region
    • snapSpace

      @Deprecated(since="9") protected double snapSpace(double value)
      Deprecated.
      replaced by snapSpaceX() and snapSpaceY()
      If this region's snapToPixel property is false, this method returns the same value, else it tries to return a value rounded to the nearest pixel, but since there is no indication if the value is a vertical or horizontal measurement then it may be snapped to the wrong pixel size metric on screens with different horizontal and vertical scales.
      Parameters:
      value - the space value to be snapped
      Returns:
      value rounded to nearest pixel
    • snapSpaceX

      public double snapSpaceX(double value)
      If this region's snapToPixel property is true, returns a value rounded to the nearest pixel in the horizontal direction, else returns the same value.
      Parameters:
      value - the space value to be snapped
      Returns:
      value rounded to nearest pixel
      Since:
      9
    • snapSpaceY

      public double snapSpaceY(double value)
      If this region's snapToPixel property is true, returns a value rounded to the nearest pixel in the vertical direction, else returns the same value.
      Parameters:
      value - the space value to be snapped
      Returns:
      value rounded to nearest pixel
      Since:
      9
    • snapSize

      @Deprecated(since="9") protected double snapSize(double value)
      Deprecated.
      replaced by snapSizeX() and snapSizeY()
      If this region's snapToPixel property is false, this method returns the same value, else it tries to return a value ceiled to the nearest pixel, but since there is no indication if the value is a vertical or horizontal measurement then it may be snapped to the wrong pixel size metric on screens with different horizontal and vertical scales.
      Parameters:
      value - the size value to be snapped
      Returns:
      value ceiled to nearest pixel
    • snapSizeX

      public double snapSizeX(double value)
      If this region's snapToPixel property is true, returns a value ceiled to the nearest pixel in the horizontal direction, else returns the same value.
      Parameters:
      value - the size value to be snapped
      Returns:
      value ceiled to nearest pixel
      Since:
      9
    • snapSizeY

      public double snapSizeY(double value)
      If this region's snapToPixel property is true, returns a value ceiled to the nearest pixel in the vertical direction, else returns the same value.
      Parameters:
      value - the size value to be snapped
      Returns:
      value ceiled to nearest pixel
      Since:
      9
    • snapPosition

      @Deprecated(since="9") protected double snapPosition(double value)
      Deprecated.
      replaced by snapPositionX() and snapPositionY()
      If this region's snapToPixel property is false, this method returns the same value, else it tries to return a value rounded to the nearest pixel, but since there is no indication if the value is a vertical or horizontal measurement then it may be snapped to the wrong pixel size metric on screens with different horizontal and vertical scales.
      Parameters:
      value - the position value to be snapped
      Returns:
      value rounded to nearest pixel
    • snapPositionX

      public double snapPositionX(double value)
      If this region's snapToPixel property is true, returns a value rounded to the nearest pixel in the horizontal direction, else returns the same value.
      Parameters:
      value - the position value to be snapped
      Returns:
      value rounded to nearest pixel
      Since:
      9
    • snapPositionY

      public double snapPositionY(double value)
      If this region's snapToPixel property is true, returns a value rounded to the nearest pixel in the vertical direction, else returns the same value.
      Parameters:
      value - the position value to be snapped
      Returns:
      value rounded to nearest pixel
      Since:
      9
    • snappedTopInset

      public final double snappedTopInset()
      Utility method to get the top inset which includes padding and border inset. Then snapped to whole pixels if isSnapToPixel() is true.
      Returns:
      Rounded up insets top
      Since:
      JavaFX 8.0
    • snappedBottomInset

      public final double snappedBottomInset()
      Utility method to get the bottom inset which includes padding and border inset. Then snapped to whole pixels if isSnapToPixel() is true.
      Returns:
      Rounded up insets bottom
      Since:
      JavaFX 8.0
    • snappedLeftInset

      public final double snappedLeftInset()
      Utility method to get the left inset which includes padding and border inset. Then snapped to whole pixels if isSnapToPixel() is true.
      Returns:
      Rounded up insets left
      Since:
      JavaFX 8.0
    • snappedRightInset

      public final double snappedRightInset()
      Utility method to get the right inset which includes padding and border inset. Then snapped to whole pixels if isSnapToPixel() is true.
      Returns:
      Rounded up insets right
      Since:
      JavaFX 8.0
    • positionInArea

      protected void positionInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, HPos halignment, VPos valignment)
      Utility method which positions the child within an area of this region defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.

      This function does not resize the node and uses the node's layout bounds width and height to determine how it should be positioned within the area.

      If the vertical alignment is VPos.BASELINE then it will position the node so that its own baseline aligns with the passed in baselineOffset, otherwise the baseline parameter is ignored.

      If snapToPixel is true for this region, then the x/y position values will be rounded to their nearest pixel boundaries.

      Parameters:
      child - the child being positioned within this region
      areaX - the horizontal offset of the layout area relative to this region
      areaY - the vertical offset of the layout area relative to this region
      areaWidth - the width of the layout area
      areaHeight - the height of the layout area
      areaBaselineOffset - the baseline offset to be used if VPos is BASELINE
      halignment - the horizontal alignment for the child within the area
      valignment - the vertical alignment for the child within the area
    • positionInArea

      public static void positionInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, HPos halignment, VPos valignment, boolean isSnapToPixel)
      Utility method which positions the child within an area of this region defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.

      This function does not resize the node and uses the node's layout bounds width and height to determine how it should be positioned within the area.

      If the vertical alignment is VPos.BASELINE then it will position the node so that its own baseline aligns with the passed in baselineOffset, otherwise the baseline parameter is ignored.

      If snapToPixel is true for this region, then the x/y position values will be rounded to their nearest pixel boundaries.

      If margin is non-null, then that space will be allocated around the child within the layout area. margin may be null.

      Parameters:
      child - the child being positioned within this region
      areaX - the horizontal offset of the layout area relative to this region
      areaY - the vertical offset of the layout area relative to this region
      areaWidth - the width of the layout area
      areaHeight - the height of the layout area
      areaBaselineOffset - the baseline offset to be used if VPos is BASELINE
      margin - the margin of space to be allocated around the child
      halignment - the horizontal alignment for the child within the area
      valignment - the vertical alignment for the child within the area
      isSnapToPixel - whether to snap size and position to pixels
      Since:
      JavaFX 8.0
    • layoutInArea

      protected void layoutInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, HPos halignment, VPos valignment)
      Utility method which lays out the child within an area of this region defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.

      If the child is resizable, this method will resize it to fill the specified area unless the node's maximum size prevents it. If the node's maximum size preference is less than the area size, the maximum size will be used. If node's maximum is greater than the area size, then the node will be resized to fit within the area, unless its minimum size prevents it.

      If the child has a non-null contentBias, then this method will use it when resizing the child. If the contentBias is horizontal, it will set its width first to the area's width (up to the child's max width limit) and then pass that value to compute the child's height. If child's contentBias is vertical, then it will set its height to the area height (up to child's max height limit) and pass that height to compute the child's width. If the child's contentBias is null, then it's width and height have no dependencies on each other.

      If the child is not resizable (Shape, Group, etc) then it will only be positioned and not resized.

      If the child's resulting size differs from the area's size (either because it was not resizable or it's sizing preferences prevented it), then this function will align the node relative to the area using horizontal and vertical alignment values. If valignment is VPos.BASELINE then the node's baseline will be aligned with the area baseline offset parameter, otherwise the baseline parameter is ignored.

      If snapToPixel is true for this region, then the resulting x,y values will be rounded to their nearest pixel boundaries and the width/height values will be ceiled to the next pixel boundary.

      Parameters:
      child - the child being positioned within this region
      areaX - the horizontal offset of the layout area relative to this region
      areaY - the vertical offset of the layout area relative to this region
      areaWidth - the width of the layout area
      areaHeight - the height of the layout area
      areaBaselineOffset - the baseline offset to be used if VPos is BASELINE
      halignment - the horizontal alignment for the child within the area
      valignment - the vertical alignment for the child within the area
    • layoutInArea

      protected void layoutInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, HPos halignment, VPos valignment)
      Utility method which lays out the child within an area of this region defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.

      If the child is resizable, this method will resize it to fill the specified area unless the node's maximum size prevents it. If the node's maximum size preference is less than the area size, the maximum size will be used. If node's maximum is greater than the area size, then the node will be resized to fit within the area, unless its minimum size prevents it.

      If the child has a non-null contentBias, then this method will use it when resizing the child. If the contentBias is horizontal, it will set its width first to the area's width (up to the child's max width limit) and then pass that value to compute the child's height. If child's contentBias is vertical, then it will set its height to the area height (up to child's max height limit) and pass that height to compute the child's width. If the child's contentBias is null, then it's width and height have no dependencies on each other.

      If the child is not resizable (Shape, Group, etc) then it will only be positioned and not resized.

      If the child's resulting size differs from the area's size (either because it was not resizable or it's sizing preferences prevented it), then this function will align the node relative to the area using horizontal and vertical alignment values. If valignment is VPos.BASELINE then the node's baseline will be aligned with the area baseline offset parameter, otherwise the baseline parameter is ignored.

      If margin is non-null, then that space will be allocated around the child within the layout area. margin may be null.

      If snapToPixel is true for this region, then the resulting x,y values will be rounded to their nearest pixel boundaries and the width/height values will be ceiled to the next pixel boundary.

      Parameters:
      child - the child being positioned within this region
      areaX - the horizontal offset of the layout area relative to this region
      areaY - the vertical offset of the layout area relative to this region
      areaWidth - the width of the layout area
      areaHeight - the height of the layout area
      areaBaselineOffset - the baseline offset to be used if VPos is BASELINE
      margin - the margin of space to be allocated around the child
      halignment - the horizontal alignment for the child within the area
      valignment - the vertical alignment for the child within the area
    • layoutInArea

      protected void layoutInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, boolean fillWidth, boolean fillHeight, HPos halignment, VPos valignment)
      Utility method which lays out the child within an area of this region defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.

      If the child is resizable, this method will use fillWidth and fillHeight to determine whether to resize it to fill the area or keep the child at its preferred dimension. If fillWidth/fillHeight are true, then this method will only resize the child up to its max size limits. If the node's maximum size preference is less than the area size, the maximum size will be used. If node's maximum is greater than the area size, then the node will be resized to fit within the area, unless its minimum size prevents it.

      If the child has a non-null contentBias, then this method will use it when resizing the child. If the contentBias is horizontal, it will set its width first and then pass that value to compute the child's height. If child's contentBias is vertical, then it will set its height first and pass that value to compute the child's width. If the child's contentBias is null, then it's width and height have no dependencies on each other.

      If the child is not resizable (Shape, Group, etc) then it will only be positioned and not resized.

      If the child's resulting size differs from the area's size (either because it was not resizable or it's sizing preferences prevented it), then this function will align the node relative to the area using horizontal and vertical alignment values. If valignment is VPos.BASELINE then the node's baseline will be aligned with the area baseline offset parameter, otherwise the baseline parameter is ignored.

      If margin is non-null, then that space will be allocated around the child within the layout area. margin may be null.

      If snapToPixel is true for this region, then the resulting x,y values will be rounded to their nearest pixel boundaries and the width/height values will be ceiled to the next pixel boundary.

      Parameters:
      child - the child being positioned within this region
      areaX - the horizontal offset of the layout area relative to this region
      areaY - the vertical offset of the layout area relative to this region
      areaWidth - the width of the layout area
      areaHeight - the height of the layout area
      areaBaselineOffset - the baseline offset to be used if VPos is BASELINE
      margin - the margin of space to be allocated around the child
      fillWidth - whether or not the child should be resized to fill the area width or kept to its preferred width
      fillHeight - whether or not the child should e resized to fill the area height or kept to its preferred height
      halignment - the horizontal alignment for the child within the area
      valignment - the vertical alignment for the child within the area
    • layoutInArea

      public static void layoutInArea(Node child, double areaX, double areaY, double areaWidth, double areaHeight, double areaBaselineOffset, Insets margin, boolean fillWidth, boolean fillHeight, HPos halignment, VPos valignment, boolean isSnapToPixel)
      Utility method which lays out the child within an area of it's parent defined by areaX, areaY, areaWidth x areaHeight, with a baseline offset relative to that area.

      If the child is resizable, this method will use fillWidth and fillHeight to determine whether to resize it to fill the area or keep the child at its preferred dimension. If fillWidth/fillHeight are true, then this method will only resize the child up to its max size limits. If the node's maximum size preference is less than the area size, the maximum size will be used. If node's maximum is greater than the area size, then the node will be resized to fit within the area, unless its minimum size prevents it.

      If the child has a non-null contentBias, then this method will use it when resizing the child. If the contentBias is horizontal, it will set its width first and then pass that value to compute the child's height. If child's contentBias is vertical, then it will set its height first and pass that value to compute the child's width. If the child's contentBias is null, then it's width and height have no dependencies on each other.

      If the child is not resizable (Shape, Group, etc) then it will only be positioned and not resized.

      If the child's resulting size differs from the area's size (either because it was not resizable or it's sizing preferences prevented it), then this function will align the node relative to the area using horizontal and vertical alignment values. If valignment is VPos.BASELINE then the node's baseline will be aligned with the area baseline offset parameter, otherwise the baseline parameter is ignored.

      If margin is non-null, then that space will be allocated around the child within the layout area. margin may be null.

      If snapToPixel is true for this region, then the resulting x,y values will be rounded to their nearest pixel boundaries and the width/height values will be ceiled to the next pixel boundary.

      Parameters:
      child - the child being positioned within this region
      areaX - the horizontal offset of the layout area relative to this region
      areaY - the vertical offset of the layout area relative to this region
      areaWidth - the width of the layout area
      areaHeight - the height of the layout area
      areaBaselineOffset - the baseline offset to be used if VPos is BASELINE
      margin - the margin of space to be allocated around the child
      fillWidth - whether or not the child should be resized to fill the area width or kept to its preferred width
      fillHeight - whether or not the child should e resized to fill the area height or kept to its preferred height
      halignment - the horizontal alignment for the child within the area
      valignment - the vertical alignment for the child within the area
      isSnapToPixel - whether to snap size and position to pixels
      Since:
      JavaFX 8.0
    • getUserAgentStylesheet

      public String getUserAgentStylesheet()
      An implementation may specify its own user-agent styles for this Region, and its children, by overriding this method. These styles are used in addition to whatever user-agent stylesheets are in use. This provides a mechanism for third parties to introduce styles for custom controls.

      The URL is a hierarchical URI of the form [scheme:][//authority][path]. If the URL does not have a [scheme:] component, the URL is considered to be the [path] component only. Any leading '/' character of the [path] is ignored and the [path] is treated as a path relative to the root of the application's classpath.

      Subclasses overriding this method should not assume any particular implementation approach as to the number and frequency with which it is called. For this reason, attempting any kind of dynamic implementation (i.e. returning different user agent stylesheet values) based on some state change is highly discouraged, as there is no guarantee when, or even if, this method will be called. Some JavaFX CSS implementations may choose to cache this response for an indefinite period of time, and therefore there should be no expectation around when this method is called.

      
      
       package com.example.javafx.app;
      
       import javafx.application.Application;
       import javafx.scene.Group;
       import javafx.scene.Scene;
       import javafx.stage.Stage;
      
       public class MyApp extends Application {
      
           @Override public void start(Stage stage) {
               Scene scene = new Scene(new Group());
               scene.getStylesheets().add("/com/example/javafx/app/mystyles.css");
               stage.setScene(scene);
               stage.show();
           }
      
           public static void main(String[] args) {
               launch(args);
           }
       }
       
      For additional information about using CSS with the scene graph, see the CSS Reference Guide.
      Returns:
      A string URL
      Since:
      JavaFX 8u40
    • getClassCssMetaData

      public static List<CssMetaData<? extends Styleable,?>> getClassCssMetaData()
      Gets the CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
      Returns:
      the CssMetaData
      Since:
      JavaFX 8.0
    • getCssMetaData

      public List<CssMetaData<? extends Styleable,?>> getCssMetaData()
      This method should delegate to Node.getClassCssMetaData() so that a Node's CssMetaData can be accessed without the need for reflection.
      Specified by:
      getCssMetaData in interface Styleable
      Overrides:
      getCssMetaData in class Node
      Returns:
      The CssMetaData associated with this node, which may include the CssMetaData of its superclasses.
      Since:
      JavaFX 8.0