Module javafx.graphics
Package javafx.scene.layout

# Class BorderStroke

java.lang.Object
javafx.scene.layout.BorderStroke

public class BorderStroke extends Object
Defines the stroke to use on a `Border` for styling a `Region`. The stroke is a vector-based rendering that outlines the border area. It can be inset (or outset) from the `Region`'s edge, and the values of the stroke are taken into account when computing the `Region`'s insets (for defining the content area). The stroke visuals are not used when any `BorderImage`s are in use.

When applied to a `Region` with a defined shape, the border width and stroking information for the `top` is used, while the other attributes are ignored.

Since:
  JavaFX 8.0

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final BorderWidths`
  `DEFAULT_WIDTHS`
  The default Insets to be used with a BorderStroke that does not otherwise define any.
  `static final BorderWidths`
  `MEDIUM`
  The default insets when "medium" is specified
  `static final BorderWidths`
  `THICK`
  The default insets when "thick" is specified
  `static final BorderWidths`
  `THIN`
  The default insets when "thin" is specified.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `BorderStroke(Paint stroke, BorderStrokeStyle style, CornerRadii radii, BorderWidths widths)`
  Creates a new `BorderStroke`.
  `BorderStroke(Paint stroke, BorderStrokeStyle style, CornerRadii radii, BorderWidths widths, Insets insets)`
  Creates a new `BorderStroke`.
  `BorderStroke(Paint topStroke, Paint rightStroke, Paint bottomStroke, Paint leftStroke, BorderStrokeStyle topStyle, BorderStrokeStyle rightStyle, BorderStrokeStyle bottomStyle, BorderStrokeStyle leftStyle, CornerRadii radii, BorderWidths widths, Insets insets)`
  Creates a new `BorderStroke`, specifying all construction parameters.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `final Paint`
  `getBottomStroke()`
  Defines the fill of bottom side of this border.
  `final BorderStrokeStyle`
  `getBottomStyle()`
  Defines the style of bottom side of this border.
  `final Insets`
  `getInsets()`
  Defines the insets of each side of the `BorderStroke`.
  `final Paint`
  `getLeftStroke()`
  Defines the fill of left side of this border.
  `final BorderStrokeStyle`
  `getLeftStyle()`
  Defines the style of left side of this border.
  `final CornerRadii`
  `getRadii()`
  Defines the radii for each corner of this `BorderStroke`.
  `final Paint`
  `getRightStroke()`
  Defines the fill of right side of this border.
  `final BorderStrokeStyle`
  `getRightStyle()`
  Defines the style of right side of this border.
  `final Paint`
  `getTopStroke()`
  Defines the fill of top side of this border.
  `final BorderStrokeStyle`
  `getTopStyle()`
  Defines the style of top side of this border.
  `final BorderWidths`
  `getWidths()`
  Defines the thickness of each side of the `BorderStroke`.
  `final boolean`
  `isStrokeUniform()`
  Checks if the stroke of this region is uniform.

  ### Methods declared in class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Field Details

  - ### THIN

    public static final BorderWidths THIN
    The default insets when "thin" is specified.

  - ### MEDIUM

    public static final BorderWidths MEDIUM
    The default insets when "medium" is specified

  - ### THICK

    public static final BorderWidths THICK
    The default insets when "thick" is specified

  - ### DEFAULT_WIDTHS

    public static final BorderWidths DEFAULT_WIDTHS
    The default Insets to be used with a BorderStroke that does not otherwise define any.

- ## Constructor Details

  - ### BorderStroke

    public BorderStroke(Paint stroke, BorderStrokeStyle style, CornerRadii radii, BorderWidths widths)
    Creates a new `BorderStroke`.
    Parameters:
      `stroke` - The stroke to use for all sides. If `null`, defaults to `Color.BLACK`.
      `style` - The style to use for all sides. If `null`, defaults to `BorderStrokeStyle.NONE`.
      `radii` - The radii to use. If `null`, defaults to `CornerRadii.EMPTY`.
      `widths` - The widths to use. If `null`, defaults to `DEFAULT_WIDTHS`.

  - ### BorderStroke

    public BorderStroke(Paint stroke, BorderStrokeStyle style, CornerRadii radii, BorderWidths widths, Insets insets)
    Creates a new `BorderStroke`.
    Parameters:
      `stroke` - The stroke to use for all sides. If `null`, defaults to `Color.BLACK`.
      `style` - The style to use for all sides. If `null`, defaults to `BorderStrokeStyle.NONE`.
      `radii` - The radii to use. If `null`, defaults to `CornerRadii.EMPTY`.
      `widths` - The widths to use. If `null`, defaults to `DEFAULT_WIDTHS`.
      `insets` - The insets indicating where to draw the border relative to the region edges. If `null`, defaults to `Insets.EMPTY`.

  - ### BorderStroke

    public BorderStroke(Paint topStroke, Paint rightStroke, Paint bottomStroke, Paint leftStroke, BorderStrokeStyle topStyle, BorderStrokeStyle rightStyle, BorderStrokeStyle bottomStyle, BorderStrokeStyle leftStyle, CornerRadii radii, BorderWidths widths, Insets insets)
    Creates a new `BorderStroke`, specifying all construction parameters.
    Parameters:
      `topStroke` - The fill to use on the top. If `null`, defaults to `Color.BLACK`.
      `rightStroke` - The fill to use on the right. If `null`, defaults to the same value as `topStroke`.
      `bottomStroke` - The fill to use on the bottom. If `null`, defaults to the same value as `topStroke`.
      `leftStroke` - The fill to use on the left. If `null`, defaults to the same value as `rightStroke`.
      `topStyle` - The style to use on the top. If `null`, defaults to `BorderStrokeStyle.NONE`.
      `rightStyle` - The style to use on the right. If `null`, defaults to the same value as `topStyle`.
      `bottomStyle` - The style to use on the bottom. If `null`, defaults to the same value as `topStyle`.
      `leftStyle` - The style to use on the left. If `null`, defaults to the same value as `rightStyle`.
      `radii` - The radii. If `null`, defaults to square corners by using `CornerRadii.EMPTY`.
      `widths` - The thickness of each side. If `null`, defaults to `DEFAULT_WIDTHS`.
      `insets` - The insets indicating where to draw the border relative to the region edges. If `null`, defaults to `Insets.EMPTY`.

- ## Method Details

  - ### getTopStroke

    public final Paint getTopStroke()
    Defines the fill of top side of this border.
    Default value:
      `Color.BLACK`
    Returns:
      the fill of top side of this border

  - ### getRightStroke

    public final Paint getRightStroke()
    Defines the fill of right side of this border. If `null`, then the `topFill` is used.
    Default value:
      `null` (same as `topFill`)
    Returns:
      the fill of right side of this border

  - ### getBottomStroke

    public final Paint getBottomStroke()
    Defines the fill of bottom side of this border. If `null`, then the `topFill` is used.
    Default value:
      `null` (same as `topFill`)
    Returns:
      the fill of bottom side of this border

  - ### getLeftStroke

    public final Paint getLeftStroke()
    Defines the fill of left side of this border. If `null`, then the `rightFill` is used.
    Default value:
      `null` (same as `rightFill`)
    Returns:
      the fill of left side of this border

  - ### getTopStyle

    public final BorderStrokeStyle getTopStyle()
    Defines the style of top side of this border.
    Default value:
      `BorderStrokeStyle.NONE`
    Returns:
      the style of top side of this border

  - ### getRightStyle

    public final BorderStrokeStyle getRightStyle()
    Defines the style of right side of this border. If `null`, then `topStyle` is used;
    Default value:
      `null` (same as `topStyle`)
    Returns:
      the style of right side of this border

  - ### getBottomStyle

    public final BorderStrokeStyle getBottomStyle()
    Defines the style of bottom side of this border. If `null`, then `topStyle` is used; Use `BorderStyle.NONE` to set the border to have no border style.
    Default value:
      `null` (same as `topStyle`)
    Returns:
      the style of bottom side of this border

  - ### getLeftStyle

    public final BorderStrokeStyle getLeftStyle()
    Defines the style of left side of this border. If `null`, then `rightStyle` is used. Use `BorderStyle.NONE` to set the border to have no border style.
    Default value:
      `null` (same as `rightStyle`)
    Returns:
      the style of left side of this border

  - ### getWidths

    public final BorderWidths getWidths()
    Defines the thickness of each side of the `BorderStroke`. This will never be `null`, and defaults to `DEFAULT_WIDTHS`.
    Returns:
      the thickness of each side of the `BorderStroke`

  - ### getInsets

    public final Insets getInsets()
    Defines the insets of each side of the `BorderStroke`. This will never be `null`, and defaults to `Insets.EMPTY`.
    Returns:
      the insets of each side of the `BorderStroke`

  - ### getRadii

    public final CornerRadii getRadii()
    Defines the radii for each corner of this `BorderStroke`. This will never be `null`, and defaults to `CornerRadii.EMPTY`.
    Returns:
      the radii for each corner of this `BorderStroke`

  - ### isStrokeUniform

    public final boolean isStrokeUniform()
    Checks if the stroke of this region is uniform. A uniform stroke has all its side strokes (top, bottom, left, right) of same color, width and style.
    Returns:
      `true` if border stroke is uniform