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

  Modifier and Type | Method | Description
  --- | --- | ---
  `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`.
  `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