javax.swing.border

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

    All Methods Instance Methods Concrete Methods
    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 inherited from class javax.swing.border.AbstractBorder

      `getBaseline, getBaselineResizeBehavior, getBorderInsets, getInteriorRectangle, getInteriorRectangle, isBorderOpaque`

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

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

- - ### Constructor Detail

    - #### 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(value={"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 Detail

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

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.