MatteBorder (Java SE 26 & JDK 26)
Description: declaration: module: java.desktop, package: javax.swing.border, class: MatteBorder
Keywords: javax.swing.border.MatteBorder class

# Class MatteBorder

java.lang.Object
javax.swing.border.AbstractBorder
javax.swing.border.EmptyBorder
javax.swing.border.MatteBorder

All Implemented Interfaces:
  `Serializable, Border`

Direct Known Subclasses:
  `BorderUIResource.MatteBorderUIResource`

public class MatteBorder extends EmptyBorder
A class which provides a matte-like border of either a solid color or a tiled icon.

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`.

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `protected Color`
  `color`
  The color rendered for the border.
  `protected Icon`
  `tileIcon`
  The icon to be used for tiling the border.

  ### Fields declared in class EmptyBorder

  `bottom, left, right, top`
  Modifier and Type
  Field
  Description
  `protected int`
  `bottom`
  The bottom inset of the border.
  `protected int`
  `left`
  The left inset of the border.
  `protected int`
  `right`
  The right inset of the border.
  `protected int`
  `top`
  The top inset of the border.

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `MatteBorder(int top, int left, int bottom, int right, Color matteColor)`
  Creates a matte border with the specified insets and color.
  `MatteBorder(int top, int left, int bottom, int right, Icon tileIcon)`
  Creates a matte border with the specified insets and tile icon.
  `MatteBorder(Insets borderInsets, Color matteColor)`
  Creates a matte border with the specified insets and color.
  `MatteBorder(Insets borderInsets, Icon tileIcon)`
  Creates a matte border with the specified insets and tile icon.
  `MatteBorder(Icon tileIcon)`
  Creates a matte border with the specified tile icon.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Insets`
  `getBorderInsets()`
  Returns the insets of the border.
  `Insets`
  `getBorderInsets(Component c, Insets insets)`
  Reinitialize the insets parameter with this Border's current Insets.
  `Color`
  `getMatteColor()`
  Returns the color used for tiling the border or null if a tile icon is being used.
  `Icon`
  `getTileIcon()`
  Returns the icon used for tiling the border or null if a solid color is being used.
  `boolean`
  `isBorderOpaque()`
  Returns whether or not the border is opaque.
  `void`
  `paintBorder(Component c, Graphics g, int x, int y, int width, int height)`
  Paints the matte border.

  ### Methods declared in class AbstractBorder

  `getBaseline, getBaselineResizeBehavior, getBorderInsets, getInteriorRectangle, getInteriorRectangle`
  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.

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

- ## Field Details

  - ### color

    protected Color color
    The color rendered for the border.

  - ### tileIcon

    protected Icon tileIcon
    The icon to be used for tiling the border.

- ## Constructor Details

  - ### MatteBorder

    public MatteBorder(int top, int left, int bottom, int right, Color matteColor)
    Creates a matte border with the specified insets and color.
    Parameters:
      `top` - the top inset of the border
      `left` - the left inset of the border
      `bottom` - the bottom inset of the border
      `right` - the right inset of the border
      `matteColor` - the color rendered for the border

  - ### MatteBorder

    public MatteBorder(Insets borderInsets, Color matteColor)
    Creates a matte border with the specified insets and color.
    Parameters:
      `borderInsets` - the insets of the border
      `matteColor` - the color rendered for the border
    Throws:
      `NullPointerException` - if the specified `borderInsets` is `null`
    Since:
      1.3

  - ### MatteBorder

    public MatteBorder(int top, int left, int bottom, int right, Icon tileIcon)
    Creates a matte border with the specified insets and tile icon.
    Parameters:
      `top` - the top inset of the border
      `left` - the left inset of the border
      `bottom` - the bottom inset of the border
      `right` - the right inset of the border
      `tileIcon` - the icon to be used for tiling the border

  - ### MatteBorder

    public MatteBorder(Insets borderInsets, Icon tileIcon)
    Creates a matte border with the specified insets and tile icon.
    Parameters:
      `borderInsets` - the insets of the border
      `tileIcon` - the icon to be used for tiling the border
    Throws:
      `NullPointerException` - if the specified `borderInsets` is `null`
    Since:
      1.3

  - ### MatteBorder

    public MatteBorder(Icon tileIcon)
    Creates a matte border with the specified tile icon. The insets will be calculated dynamically based on the size of the tile icon, where the top and bottom will be equal to the tile icon's height, and the left and right will be equal to the tile icon's width.
    Parameters:
      `tileIcon` - the icon to be used for tiling the border

- ## Method Details

  - ### paintBorder

    public void paintBorder(Component c, Graphics g, int x, int y, int width, int height)
    Paints the matte border.
    Specified by:
      `paintBorder` in interface `Border`
    Overrides:
      `paintBorder` in class `EmptyBorder`
    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

  - ### getBorderInsets

    public Insets getBorderInsets(Component c, Insets insets)
    Reinitialize the insets parameter with this Border's current Insets.
    Overrides:
      `getBorderInsets` in class `EmptyBorder`
    Parameters:
      `c` - the component for which this border insets value applies
      `insets` - the object to be reinitialized
    Returns:
      the `insets` object
    Throws:
      `NullPointerException` - if the specified `insets` is `null`
    Since:
      1.3

  - ### getBorderInsets

    public Insets getBorderInsets()
    Returns the insets of the border.
    Overrides:
      `getBorderInsets` in class `EmptyBorder`
    Returns:
      an `Insets` object containing the insets from top, left, bottom and right
    Since:
      1.3

  - ### getMatteColor

    public Color getMatteColor()
    Returns the color used for tiling the border or null if a tile icon is being used.
    Returns:
      the `Color` object used to render the border or `null` if a tile icon is used
    Since:
      1.3

  - ### getTileIcon

    public Icon getTileIcon()
    Returns the icon used for tiling the border or null if a solid color is being used.
    Returns:
      the `Icon` used to tile the border or `null` if a solid color is used to fill the border
    Since:
      1.3

  - ### isBorderOpaque

    public boolean isBorderOpaque()
    Returns whether or not the border is opaque.
    Specified by:
      `isBorderOpaque` in interface `Border`
    Overrides:
      `isBorderOpaque` in class `EmptyBorder`
    Returns:
      `true` if the border is opaque, `false` otherwise