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

    A Region with a shape

    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 Detail

      • 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:
        isSnapToPixel(), setSnapToPixel(boolean)
      • 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:
        getPadding(), setPadding(Insets)
      • 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:
        getBackground(), setBackground(Background)
      • 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:
        getBorder(), setBorder(Border)
      • 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:
        getOpaqueInsets(), setOpaqueInsets(Insets)
      • 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:
        getInsets()
      • 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:
        getWidth(), setWidth(double)
      • 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:
        getHeight(), setHeight(double)
      • 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:
        getMinWidth(), setMinWidth(double)
      • 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:
        getMinHeight(), setMinHeight(double)
      • 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:
        getPrefWidth(), setPrefWidth(double)
      • 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:
        getPrefHeight(), setPrefHeight(double)
      • 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:
        getMaxWidth(), setMaxWidth(double)
      • 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:
        getMaxHeight(), setMaxHeight(double)
      • 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:
        getShape(), setShape(Shape)
      • 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:
        isScaleShape(), setScaleShape(boolean)
      • 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:
        isCenterShape(), setCenterShape(boolean)
      • 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:
        isCacheShape(), setCacheShape(boolean)
    • Constructor Detail

      • 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 Detail

      • isSnapToPixel

        public final boolean isSnapToPixel​()
        Gets the value of the property snapToPixel.
        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.
      • setSnapToPixel

        public final void setSnapToPixel​(boolean value)
        Sets the value of the property snapToPixel.
        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.
      • 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.
        See Also:
        isSnapToPixel(), setSnapToPixel(boolean)
      • setPadding

        public final void setPadding​(Insets value)
        Sets the value of the property padding.
        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.
      • getPadding

        public final Insets getPadding​()
        Gets the value of the property padding.
        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.
      • 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.
        See Also:
        getPadding(), setPadding(Insets)
      • setBackground

        public final void setBackground​(Background value)
        Sets the value of the property background.
        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.
        Since:
        JavaFX 8.0
      • getBackground

        public final Background getBackground​()
        Gets the value of the property background.
        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.
        Since:
        JavaFX 8.0
      • 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.
        Since:
        JavaFX 8.0
        See Also:
        getBackground(), setBackground(Background)
      • setBorder

        public final void setBorder​(Border value)
        Sets the value of the property border.
        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.
        Since:
        JavaFX 8.0
      • getBorder

        public final Border getBorder​()
        Gets the value of the property border.
        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.
        Since:
        JavaFX 8.0
      • 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.
        Since:
        JavaFX 8.0
        See Also:
        getBorder(), setBorder(Border)
      • 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.
        Since:
        JavaFX 8.0
        See Also:
        getOpaqueInsets(), setOpaqueInsets(Insets)
      • setOpaqueInsets

        public final void setOpaqueInsets​(Insets value)
        Sets the value of the property opaqueInsets.
        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.
        Since:
        JavaFX 8.0
      • getOpaqueInsets

        public final Insets getOpaqueInsets​()
        Gets the value of the property opaqueInsets.
        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.
        Since:
        JavaFX 8.0
      • getInsets

        public final Insets getInsets​()
        Gets the value of the property insets.
        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.
        Since:
        JavaFX 8.0
      • 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.
        Since:
        JavaFX 8.0
        See Also:
        getInsets()
      • setWidth

        protected void setWidth​(double value)
        Sets the value of the property width.
        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.
      • getWidth

        public final double getWidth​()
        Gets the value of the property width.
        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.
      • 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.
        See Also:
        getWidth(), setWidth(double)
      • setHeight

        protected void setHeight​(double value)
        Sets the value of the property height.
        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.
      • getHeight

        public final double getHeight​()
        Gets the value of the property height.
        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.
      • 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.
        See Also:
        getHeight(), setHeight(double)
      • setMinWidth

        public final void setMinWidth​(double value)
        Sets the value of the property minWidth.
        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.

      • getMinWidth

        public final double getMinWidth​()
        Gets the value of the property minWidth.
        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.

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

        See Also:
        getMinWidth(), setMinWidth(double)
      • setMinHeight

        public final void setMinHeight​(double value)
        Sets the value of the property minHeight.
        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.

      • getMinHeight

        public final double getMinHeight​()
        Gets the value of the property minHeight.
        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.

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

        See Also:
        getMinHeight(), setMinHeight(double)
      • 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:
        setMinWidth(double), setMinHeight(double)
      • setPrefWidth

        public final void setPrefWidth​(double value)
        Sets the value of the property prefWidth.
        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.

      • getPrefWidth

        public final double getPrefWidth​()
        Gets the value of the property prefWidth.
        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.

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

        See Also:
        getPrefWidth(), setPrefWidth(double)
      • setPrefHeight

        public final void setPrefHeight​(double value)
        Sets the value of the property prefHeight.
        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.

      • getPrefHeight

        public final double getPrefHeight​()
        Gets the value of the property prefHeight.
        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.

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

        See Also:
        getPrefHeight(), setPrefHeight(double)
      • 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:
        setPrefWidth(double), setPrefHeight(double)
      • setMaxWidth

        public final void setMaxWidth​(double value)
        Sets the value of the property maxWidth.
        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.

      • getMaxWidth

        public final double getMaxWidth​()
        Gets the value of the property maxWidth.
        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.

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

        See Also:
        getMaxWidth(), setMaxWidth(double)
      • setMaxHeight

        public final void setMaxHeight​(double value)
        Sets the value of the property maxHeight.
        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.

      • getMaxHeight

        public final double getMaxHeight​()
        Gets the value of the property maxHeight.
        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.

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

        See Also:
        getMaxHeight(), setMaxHeight(double)
      • 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:
        setMaxWidth(double), setMaxHeight(double)
      • getShape

        public final Shape getShape​()
        Gets the value of the property shape.
        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
        Since:
        JavaFX 8.0
      • setShape

        public final void setShape​(Shape value)
        Sets the value of the property shape.
        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
        Since:
        JavaFX 8.0
      • 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
        Since:
        JavaFX 8.0
        See Also:
        getShape(), setShape(Shape)
      • setScaleShape

        public final void setScaleShape​(boolean value)
        Sets the value of the property scaleShape.
        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
        Since:
        JavaFX 8.0
      • isScaleShape

        public final boolean isScaleShape​()
        Gets the value of the property scaleShape.
        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
        Since:
        JavaFX 8.0
      • 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
        Since:
        JavaFX 8.0
        See Also:
        isScaleShape(), setScaleShape(boolean)
      • setCenterShape

        public final void setCenterShape​(boolean value)
        Sets the value of the property centerShape.
        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
        Since:
        JavaFX 8.0
      • isCenterShape

        public final boolean isCenterShape​()
        Gets the value of the property centerShape.
        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
        Since:
        JavaFX 8.0
      • 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
        Since:
        JavaFX 8.0
        See Also:
        isCenterShape(), setCenterShape(boolean)
      • setCacheShape

        public final void setCacheShape​(boolean value)
        Sets the value of the property cacheShape.
        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
        Since:
        JavaFX 8.0
      • isCacheShape

        public final boolean isCacheShape​()
        Gets the value of the property cacheShape.
        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
        Since:
        JavaFX 8.0
      • 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
        Since:
        JavaFX 8.0
        See Also:
        isCacheShape(), setCacheShape(boolean)
      • 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 Parent
        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:
        setMinWidth(double)
      • 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 Parent
        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:
        setMinHeight(double)
      • 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 Parent
        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:
        setPrefWidth(double)
      • 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 Parent
        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:
        setPrefHeight(double)
      • 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:
        setMaxWidth(double)
      • 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:
        setMaxHeight(double)
      • 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​()
        Returns:
        The CssMetaData associated with this class, which may include the CssMetaData of its superclasses.
        Since:
        JavaFX 8.0