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 BorderWidths` | `DEFAULT_WIDTHS` | The default Insets to be used with a BorderStroke that does not otherwise define any.
    `static BorderWidths` | `MEDIUM` | The default insets when "medium" is specified
    `static BorderWidths` | `THICK` | The default insets when "thick" is specified
    `static 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

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

    - ### Methods inherited from class java.lang.Object

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

- - ### Field Detail

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

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

    - #### 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

    - #### equals

          public boolean equals​(Object o)

      Overrides:
        `equals` in class `Object`

    - #### hashCode

          public int hashCode()

      Overrides:
        `hashCode` in class `Object`