Top Description Fields Constructors Methods
javafx.scene.layout

public final Class Border

extends Object
implements Interpolatable<Border>
Class Inheritance
All Implemented Interfaces
javafx.animation.Interpolatable
Annotations
@SuppressWarnings:unchecked
Imports
java.util.Arrays, .Collections, .List, .Objects, javafx.animation.Interpolatable, javafx.beans.NamedArg, javafx.geometry.Insets, javafx.scene.Node, javafx.scene.paint.Paint, com.sun.javafx.UnmodifiableArrayList, com.sun.javafx.css.SubCssMetaData, javafx.css.CssMetaData, .Styleable, javafx.css.converter.InsetsConverter, .URLConverter, com.sun.javafx.scene.layout.region.BorderImageSlices, .BorderImageWidthConverter, .CornerRadiiConverter, .LayeredBorderPaintConverter, .LayeredBorderStyleConverter, .Margins, .RepeatStruct, .RepeatStructConverter, .SliceSequenceConverter, com.sun.javafx.util.InterpolationUtils

The border of a Region. A Border is an immutable object which encapsulates the entire set of data required to render the border of a Region. Because this class is immutable, you can freely reuse the same Border on many different Regions. Please refer to JavaFX CSS Reference Guide for a complete description of the CSS rules for styling the border of a Region.

Every Border is comprised of strokes and / or images. Neither list will ever be null, but either or both may be empty. When rendering, if no images are specified or no image succeeds in loading, then all strokes will be rendered in order. If any image is specified and succeeds in loading, then no strokes will be drawn, although they will still contribute to the insets and outsets of the Border.

The Border's outsets define any extension of the drawing area of a Region which is necessary to account for all border drawing and positioning. These outsets are defined by both the BorderStrokes and BorderImages specified on this Border. outsets are strictly non-negative.

insets are used to define the inner-most edge of all of the borders. It also is always strictly non-negative. The Region uses the insets of the Background and Border, and the Region's padding to determine the Region insets, which define the content area for any children of the Region. The outsets of a Border together with the outsets of a Background, and the width and height of the Region define the geometric bounds of the Region (which in turn contribute to the layoutBounds, boundsInLocal, and boundsInParent).

A Border is most often used in cases where you want to skin the Region with an image, often used in conjunction with 9-patch scaling techniques. In such cases, you may also specify a stroked border which is only used when the image fails to load for some reason.

Since
JavaFX 8.0

Field Summary

Modifier and TypeField and Description
pack-priv static final CssMetaData<Node, Paint[]>
pack-priv static final CssMetaData<Node, Insets[]>
pack-priv static final CssMetaData<Node, RepeatStruct[]>
pack-priv static final CssMetaData<Node, BorderImageSlices[]>
pack-priv static final CssMetaData<Node, String[]>
pack-priv static final CssMetaData<Node, BorderWidths[]>
pack-priv static final CssMetaData<Node, Insets[]>
pack-priv static final CssMetaData<Node, CornerRadii[]>
pack-priv static final CssMetaData<Node, BorderStrokeStyle[][]>
pack-priv static final CssMetaData<Node, Margins[]>
public static final Border
EMPTY

An empty Border, useful to use instead of null.

private final int
hash

The cached hash code computation for the Border.

private final List<BorderImage>
private final Insets
private final Insets
private final List<BorderStroke>
private static final List<CssMetaData<? extends Styleable, ?>>

Constructor Summary

AccessConstructor and Description
public
Border(BorderStroke...
The strokes. This may be null, and may contain nulls. Any contained nulls are filtered out and not included in the final List of strokes. A null array becomes an empty List. If both strokes and images are specified, and if any one of the images specified succeeds in loading, then no strokes are shown. In this way, strokes can be defined as a fallback in the case that an image failed to load.
strokes
)

Creates a new Border by supplying an array of BorderStrokes.

public
Border(BorderImage...
The images. This may be null, and may contain nulls. Any contained nulls are filtered out and not included in the final List of images. A null array becomes an empty List.
images
)

Creates a new Border by supplying an array of BorderImages.

public
Border(List<BorderStroke>
The strokes. This may be null, and may contain nulls. Any contained nulls are filtered out and not included in the final List of strokes. A null array becomes an empty List. If both strokes and images are specified, and if any one of the images specified succeeds in loading, then no strokes are shown. In this way, strokes can be defined as a fallback in the case that an image failed to load.
strokes
,
List<BorderImage>
The images. This may be null, and may contain nulls. Any contained nulls are filtered out and not included in the final List of images. A null array becomes an empty List.
images
)

Creates a new Border by supplying a List of BorderStrokes and BorderImages.

public
Border(BorderStroke[]
The strokes. This may be null, and may contain nulls. Any contained nulls are filtered out and not included in the final List of strokes. A null array becomes an empty List. If both strokes and images are specified, and if any one of the images specified succeeds in loading, then no strokes are shown. In this way, strokes can be defined as a fallback in the case that an image failed to load.
strokes
,
BorderImage[]
The images. This may be null, and may contain nulls. Any contained nulls are filtered out and not included in the final List of images. A null array becomes an empty List.
images
)

Creates a new Border by supplying an array of BorderStrokes and BorderImages.

private
Border(List<BorderStroke>
the strokes, not null
strokes
,
List<BorderImage>
the images, not null
images
,
int ignored)

Creates a new Border with the specified strokes and images.

Method Summary

Modifier and TypeMethod and Description
public boolean
equals(Object o)

Overrides java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

public static List<CssMetaData<? extends Styleable, ?>>

Returns:

the CssMetaData
getClassCssMetaData
()

Gets the CssMetaData associated with this class, which may include the CssMetaData of its superclasses.

public final List<BorderImage>

Returns:

the list of BorderImages which together define the images to use instead of stroke for this Border
getImages
()

The list of BorderImages which together define the images to use instead of stroke for this Border.

public final Insets

Returns:

the insets define the distance from the edge of the Region to the inner-most edge of the border
getInsets
()

The insets define the distance from the edge of the Region to the inner-most edge of the border, if that distance is non-negative.

public final Insets

Returns:

the outsets of the border define the outer-most edge of the border to be drawn
getOutsets
()

The outsets of the border define the outer-most edge of the border to be drawn.

public final List<BorderStroke>

Returns:

the list of BorderStrokes which together define the stroked portion of this Border
getStrokes
()

The list of BorderStrokes which together define the stroked portion of this Border.

public int
hashCode()

Overrides java.lang.Object.hashCode.

Returns a hash code value for this object.

public Border
interpolate(Border endValue, double t)

Implements javafx.animation.Interpolatable.interpolate.

Returns an intermediate value between the value of this Interpolatable and the specified endValue using the linear interpolation factor t, ranging from 0 (inclusive) to 1 (inclusive).

public final boolean

Returns:

true if the Border is empty, false otherwise.
isEmpty
()

Gets whether the Border is empty.

public static Border

Returns:

a new border of the given stroke
stroke
(Paint
the stroke of the border (for all sides). If null, Color.BLACK will be used.
stroke
)

A convenience factory method for creating a solid Border with a single Paint.

Inherited from java.lang.Object:
clonefinalizegetClassnotifynotifyAlltoStringwaitwaitwait

Field Detail

BORDER_COLORback to summary
pack-priv static final CssMetaData<Node, Paint[]> BORDER_COLOR
BORDER_IMAGE_INSETSback to summary
pack-priv static final CssMetaData<Node, Insets[]> BORDER_IMAGE_INSETS
BORDER_IMAGE_REPEATback to summary
pack-priv static final CssMetaData<Node, RepeatStruct[]> BORDER_IMAGE_REPEAT
BORDER_IMAGE_SLICEback to summary
pack-priv static final CssMetaData<Node, BorderImageSlices[]> BORDER_IMAGE_SLICE
BORDER_IMAGE_SOURCEback to summary
pack-priv static final CssMetaData<Node, String[]> BORDER_IMAGE_SOURCE
BORDER_IMAGE_WIDTHback to summary
pack-priv static final CssMetaData<Node, BorderWidths[]> BORDER_IMAGE_WIDTH
BORDER_INSETSback to summary
pack-priv static final CssMetaData<Node, Insets[]> BORDER_INSETS
BORDER_RADIUSback to summary
pack-priv static final CssMetaData<Node, CornerRadii[]> BORDER_RADIUS
BORDER_STYLEback to summary
pack-priv static final CssMetaData<Node, BorderStrokeStyle[][]> BORDER_STYLE
BORDER_WIDTHback to summary
pack-priv static final CssMetaData<Node, Margins[]> BORDER_WIDTH
EMPTYback to summary
public static final Border EMPTY

An empty Border, useful to use instead of null.

hashback to summary
private final int hash

The cached hash code computation for the Border. One very big reason for making Border immutable was to make it possible to cache and reuse the same Border instance for multiple Regions. To enable efficient caching, we cache the hash.

imagesback to summary
private final List<BorderImage> images
insetsback to summary
private final Insets insets
outsetsback to summary
private final Insets outsets
strokesback to summary
private final List<BorderStroke> strokes
STYLEABLESback to summary
private static final List<CssMetaData<? extends Styleable, ?>> STYLEABLES

Constructor Detail

Borderback to summary
public Border(BorderStroke... strokes)

Creates a new Border by supplying an array of BorderStrokes. This array may be null, or may contain null values. Any null values will be ignored and will not contribute to the strokes or outsets or insets.

Parameters
strokes:BorderStroke[]

The strokes. This may be null, and may contain nulls. Any contained nulls are filtered out and not included in the final List of strokes. A null array becomes an empty List. If both strokes and images are specified, and if any one of the images specified succeeds in loading, then no strokes are shown. In this way, strokes can be defined as a fallback in the case that an image failed to load.

Borderback to summary
public Border(BorderImage... images)

Creates a new Border by supplying an array of BorderImages. This array may be null, or may contain null values. Any null values will be ignored and will not contribute to the images or outsets or insets.

Parameters
images:BorderImage[]

The images. This may be null, and may contain nulls. Any contained nulls are filtered out and not included in the final List of images. A null array becomes an empty List.

Borderback to summary
public Border(List<BorderStroke> strokes, List<BorderImage> images)

Creates a new Border by supplying a List of BorderStrokes and BorderImages. These Lists may be null, or may contain null values. Any null values will be ignored and will not contribute to the strokes or images, outsets, or insets.

Parameters
strokes:List<BorderStroke>

The strokes. This may be null, and may contain nulls. Any contained nulls are filtered out and not included in the final List of strokes. A null array becomes an empty List. If both strokes and images are specified, and if any one of the images specified succeeds in loading, then no strokes are shown. In this way, strokes can be defined as a fallback in the case that an image failed to load.

images:List<BorderImage>

The images. This may be null, and may contain nulls. Any contained nulls are filtered out and not included in the final List of images. A null array becomes an empty List.

Borderback to summary
public Border(BorderStroke[] strokes, BorderImage[] images)

Creates a new Border by supplying an array of BorderStrokes and BorderImages. These arrays may be null, or may contain null values. Any null values will be ignored and will not contribute to the strokes or images, outsets, or insets.

Parameters
strokes:BorderStroke[]

The strokes. This may be null, and may contain nulls. Any contained nulls are filtered out and not included in the final List of strokes. A null array becomes an empty List. If both strokes and images are specified, and if any one of the images specified succeeds in loading, then no strokes are shown. In this way, strokes can be defined as a fallback in the case that an image failed to load.

images:BorderImage[]

The images. This may be null, and may contain nulls. Any contained nulls are filtered out and not included in the final List of images. A null array becomes an empty List.

Borderback to summary
private Border(List<BorderStroke> strokes, List<BorderImage> images, int ignored)

Creates a new Border with the specified strokes and images. This constructor requires that both lists do not contain null values, and that the lists are immutable. The purpose of this constructor is to prevent an unnecessary array creation when the caller already knows that the specified lists satisfy the non-null precondition and preserve the immutability invariant.

Parameters
strokes:List<BorderStroke>

the strokes, not null

images:List<BorderImage>

the images, not null

Method Detail

equalsback to summary
public boolean equals(Object o)

Overrides java.lang.Object.equals.

Doc from java.lang.Object.equals.

Indicates whether some other object is "equal to" this one.

The equals method implements an equivalence relation on non-null object references:

  • It is reflexive: for any non-null reference value x, x.equals(x) should return true.
  • It is symmetric: for any non-null reference values x and y, x.equals(y) should return true if and only if y.equals(x) returns true.
  • It is transitive: for any non-null reference values x, y, and z, if x.equals(y) returns true and y.equals(z) returns true, then x.equals(z) should return true.
  • It is consistent: for any non-null reference values x and y, multiple invocations of x.equals(y) consistently return true or consistently return false, provided no information used in equals comparisons on the objects is modified.
  • For any non-null reference value x, x.equals(null) should return false.

An equivalence relation partitions the elements it operates on into equivalence classes; all the members of an equivalence class are equal to each other. Members of an equivalence class are substitutable for each other, at least for some purposes.

Annotations
@Override
getClassCssMetaDataback to summary
public static List<CssMetaData<? extends Styleable, ?>> getClassCssMetaData()

Gets the CssMetaData associated with this class, which may include the CssMetaData of its superclasses.

Returns:List<CssMetaData<? extends Styleable, ?>>

the CssMetaData

getImagesback to summary
public final List<BorderImage> getImages()

The list of BorderImages which together define the images to use instead of stroke for this Border. If this list is specified and at least one image within it succeeds in loading, then any specified strokes are not drawn. If this list is null or no images succeeded in loading, then any specified strokes are drawn.

This List is unmodifiable and immutable. It will never be null. It will never contain any null elements.

Returns:List<BorderImage>

the list of BorderImages which together define the images to use instead of stroke for this Border

getInsetsback to summary
public final Insets getInsets()

The insets define the distance from the edge of the Region to the inner-most edge of the border, if that distance is non-negative. The values in these insets are strictly non-negative.

Returns:Insets

the insets define the distance from the edge of the Region to the inner-most edge of the border

getOutsetsback to summary
public final Insets getOutsets()

The outsets of the border define the outer-most edge of the border to be drawn. The values in these outsets are strictly non-negative.

Returns:Insets

the outsets of the border define the outer-most edge of the border to be drawn

getStrokesback to summary
public final List<BorderStroke> getStrokes()

The list of BorderStrokes which together define the stroked portion of this Border. This List is unmodifiable and immutable. It will never be null. It will never contain any null elements.

Returns:List<BorderStroke>

the list of BorderStrokes which together define the stroked portion of this Border

hashCodeback to summary
public int hashCode()

Overrides java.lang.Object.hashCode.

Doc from java.lang.Object.hashCode.

Returns a hash code value for this object. This method is supported for the benefit of hash tables such as those provided by java.util.HashMap.

The general contract of hashCode is:

  • Whenever it is invoked on the same object more than once during an execution of a Java application, the hashCode method must consistently return the same integer, provided no information used in equals comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
  • If two objects are equal according to the equals method, then calling the hashCode method on each of the two objects must produce the same integer result.
  • It is not required that if two objects are unequal according to the equals method, then calling the hashCode method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.
Annotations
@Override
interpolateback to summary
public Border interpolate(Border endValue, double t)

Implements javafx.animation.Interpolatable.interpolate.

Doc from javafx.animation.Interpolatable.interpolate.

Returns an intermediate value between the value of this Interpolatable and the specified endValue using the linear interpolation factor t, ranging from 0 (inclusive) to 1 (inclusive).

The returned value might not be a new instance; the implementation might also return one of the two existing instances if the intermediate value would be equal to one of the existing values. However, this is an optimization and applications should not assume any particular identity of the returned value.

Annotations
@Override
Exceptions
NullPointerException:
if endValue is null
Since
24
isEmptyback to summary
public final boolean isEmpty()

Gets whether the Border is empty. It is empty if there are no strokes or images.

Returns:boolean

true if the Border is empty, false otherwise.

strokeback to summary
public static Border stroke(Paint stroke)

A convenience factory method for creating a solid Border with a single Paint.

Implementation Specification

This call is equivalent to new Border(new BorderStroke(stroke, BorderStrokeStyle.SOLID, null, null));.

Parameters
stroke:Paint

the stroke of the border (for all sides). If null, Color.BLACK will be used.

Returns:Border

a new border of the given stroke

Since
18