# Class StrokeBorder

java.lang.Object
javax.swing.border.AbstractBorder
javax.swing.border.StrokeBorder

All Implemented Interfaces:
  `Serializable, Border`

public class StrokeBorder extends AbstractBorder
A class which implements a border of an arbitrary stroke.

Warning: Serialized objects of this class will not be compatible with future Swing releases. The current serialization support is appropriate for short term storage or RMI between applications running the same version of Swing. As of 1.4, support for long term storage of all JavaBeans has been added to the `java.beans` package. Please see `XMLEncoder`.

Since:
  1.7

## Constructor Summary

Constructors
Constructor
Description
`StrokeBorder(BasicStroke stroke)`
Creates a border of the specified `stroke`.
`StrokeBorder(BasicStroke stroke, Paint paint)`
Creates a border of the specified `stroke` and `paint`.

## Method Summary

Modifier and Type
Method
Description
`Insets`
`getBorderInsets(Component c, Insets insets)`
Reinitializes the `insets` parameter with this border's current insets.
`Paint`
`getPaint()`
Returns the `Paint` object used to generate a color during the border rendering.
`BasicStroke`
`getStroke()`
Returns the `BasicStroke` object used to stroke a shape during the border rendering.
`void`
`paintBorder(Component c, Graphics g, int x, int y, int width, int height)`
Paints the border for the specified component with the specified position and size.

### Methods declared in class AbstractBorder

`getBaseline, getBaselineResizeBehavior, getBorderInsets, getInteriorRectangle, getInteriorRectangle, isBorderOpaque`
Modifier and Type
Method
Description
`int`
`getBaseline(Component c, int width, int height)`
Returns the baseline.
`Component.BaselineResizeBehavior`
`getBaselineResizeBehavior(Component c)`
Returns an enum indicating how the baseline of a component changes as the size changes.
`Insets`
`getBorderInsets(Component c)`
This default implementation returns a new `Insets` object that is initialized by the `AbstractBorder.getBorderInsets(Component,Insets)` method.
`Rectangle`
`getInteriorRectangle(Component c, int x, int y, int width, int height)`
This convenience method calls the static method.
`static Rectangle`
`getInteriorRectangle(Component c, Border b, int x, int y, int width, int height)`
Returns a rectangle using the arguments minus the insets of the border.
`boolean`
`isBorderOpaque()`
This default implementation returns false.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
Modifier and Type
Method
Description
`protected Object`
`clone()`
Creates and returns a copy of this object.
`boolean`
`equals(Object obj)`
Indicates whether some other object is "equal to" this one.
`protected void`
`finalize()`
Deprecated, for removal: This API element is subject to removal in a future version.
Finalization is deprecated and subject to removal in a future release.
`final Class<?>`
`getClass()`
Returns the runtime class of this `Object`.
`int`
`hashCode()`
Returns a hash code value for this object.
`final void`
`notify()`
Wakes up a single thread that is waiting on this object's monitor.
`final void`
`notifyAll()`
Wakes up all threads that are waiting on this object's monitor.
`String`
`toString()`
Returns a string representation of the object.
`final void`
`wait()`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
`final void`
`wait(long timeoutMillis)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
`final void`
`wait(long timeoutMillis, int nanos)`
Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

## Constructor Details

### StrokeBorder

public StrokeBorder(BasicStroke stroke)
Creates a border of the specified `stroke`. The component's foreground color will be used to render the border.

Parameters:
  `stroke` - the `BasicStroke` object used to stroke a shape
Throws:
  `NullPointerException` - if the specified `stroke` is `null`

### StrokeBorder

@ConstructorProperties({"stroke","paint"}) public StrokeBorder(BasicStroke stroke, Paint paint)
Creates a border of the specified `stroke` and `paint`. If the specified `paint` is `null`, the component's foreground color will be used to render the border.

Parameters:
  `stroke` - the `BasicStroke` object used to stroke a shape
  `paint` - the `Paint` object used to generate a color
Throws:
  `NullPointerException` - if the specified `stroke` is `null`

## Method Details

### paintBorder

public void paintBorder(Component c, Graphics g, int x, int y, int width, int height)
Paints the border for the specified component with the specified position and size. If the border was not specified with a `Paint` object, the component's foreground color will be used to render the border. If the component's foreground color is not available, the default color of the `Graphics` object will be used.

Specified by:
  `paintBorder` in interface `Border`
Overrides:
  `paintBorder` in class `AbstractBorder`
Parameters:
  `c` - the component for which this border is being painted
  `g` - the paint graphics
  `x` - the x position of the painted border
  `y` - the y position of the painted border
  `width` - the width of the painted border
  `height` - the height of the painted border
Throws:
  `NullPointerException` - if the specified `g` is `null`

### getBorderInsets

public Insets getBorderInsets(Component c, Insets insets)
Reinitializes the `insets` parameter with this border's current insets. Every inset is the smallest (closest to negative infinity) integer value that is greater than or equal to the line width of the stroke that is used to paint the border.

Overrides:
  `getBorderInsets` in class `AbstractBorder`
Parameters:
  `c` - the component for which this border insets value applies
  `insets` - the `Insets` object to be reinitialized
Returns:
  the reinitialized `insets` parameter
Throws:
  `NullPointerException` - if the specified `insets` is `null`
See Also:
  - `Math.ceil(double)`

### getStroke

public BasicStroke getStroke()
Returns the `BasicStroke` object used to stroke a shape during the border rendering.

Returns:
  the `BasicStroke` object

### getPaint

public Paint getPaint()
Returns the `Paint` object used to generate a color during the border rendering.

Returns:
  the `Paint` object or `null` if the `paint` parameter is not set