javax.swing.border

## Class EtchedBorder

- java.lang.Object
- - javax.swing.border.AbstractBorder
  - - javax.swing.border.EtchedBorder

- All Implemented Interfaces:
    Serializable, Border
  Direct Known Subclasses:
    BorderUIResource.EtchedBorderUIResource

      public class EtchedBorder
      extends AbstractBorder

  A class which implements a simple etched border which can either be etched-in or etched-out. If no highlight/shadow colors are initialized when the border is created, then these colors will be dynamically derived from the background color of the component argument passed into the paintBorder() method.

  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 int` | `etchType` |
    `protected Color` | `highlight` |
    `static int` | `LOWERED` | Lowered etched type.
    `static int` | `RAISED` | Raised etched type.
    `protected Color` | `shadow` |

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `EtchedBorder()` | Creates a lowered etched border whose colors will be derived from the background color of the component passed into the paintBorder method.
    `EtchedBorder(Color highlight, Color shadow)` | Creates a lowered etched border with the specified highlight and shadow colors.
    `EtchedBorder(int etchType)` | Creates an etched border with the specified etch-type whose colors will be derived from the background color of the component passed into the paintBorder method.
    `EtchedBorder(int etchType, Color highlight, Color shadow)` | Creates an etched border with the specified etch-type, highlight and shadow colors.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Insets` | `getBorderInsets(Component c, Insets insets)` | Reinitialize the insets parameter with this Border's current Insets.
    `int` | `getEtchType()` | Returns which etch-type is set on the etched border.
    `Color` | `getHighlightColor()` | Returns the highlight color of the etched border.
    `Color` | `getHighlightColor(Component c)` | Returns the highlight color of the etched border when rendered on the specified component.
    `Color` | `getShadowColor()` | Returns the shadow color of the etched border.
    `Color` | `getShadowColor(Component c)` | Returns the shadow color of the etched border when rendered on the specified component.
    `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 border for the specified component with the specified position and size.

    - ### Methods inherited from class javax.swing.border.AbstractBorder

      `getBaseline, getBaselineResizeBehavior, getBorderInsets, getInteriorRectangle, getInteriorRectangle`

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

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

- - ### Field Detail

    - #### RAISED

          public static final int RAISED

      Raised etched type.
      See Also:
        Constant Field Values

    - #### LOWERED

          public static final int LOWERED

      Lowered etched type.
      See Also:
        Constant Field Values

    - #### etchType

          protected int etchType

    - #### highlight

          protected Color highlight

    - #### shadow

          protected Color shadow

  - ### Constructor Detail

    - #### EtchedBorder

          public EtchedBorder()

      Creates a lowered etched border whose colors will be derived from the background color of the component passed into the paintBorder method.

    - #### EtchedBorder

          public EtchedBorder(int etchType)

      Creates an etched border with the specified etch-type whose colors will be derived from the background color of the component passed into the paintBorder method.
      Parameters:
        `etchType` - the type of etch to be drawn by the border

    - #### EtchedBorder

          public EtchedBorder(Color highlight,
                              Color shadow)

      Creates a lowered etched border with the specified highlight and shadow colors.
      Parameters:
        `highlight` - the color to use for the etched highlight
        `shadow` - the color to use for the etched shadow

    - #### EtchedBorder

          @ConstructorProperties(value={"etchType","highlightColor","shadowColor"})
          public EtchedBorder(int etchType,
                                                                                                        Color highlight,
                                                                                                        Color shadow)

      Creates an etched border with the specified etch-type, highlight and shadow colors.
      Parameters:
        `etchType` - the type of etch to be drawn by the border
        `highlight` - the color to use for the etched highlight
        `shadow` - the color to use for the etched shadow

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

    - #### getBorderInsets

          public Insets getBorderInsets(Component c,
                                        Insets insets)

      Reinitialize the insets parameter with this Border's current Insets.
      Overrides:
        `getBorderInsets` in class `AbstractBorder`
      Parameters:
        `c` - the component for which this border insets value applies
        `insets` - the object to be reinitialized
      Returns:
        the `insets` object

    - #### isBorderOpaque

          public boolean isBorderOpaque()

      Returns whether or not the border is opaque.
      Specified by:
        `isBorderOpaque` in interface `Border`
      Overrides:
        `isBorderOpaque` in class `AbstractBorder`
      Returns:
        false

    - #### getEtchType

          public int getEtchType()

      Returns which etch-type is set on the etched border.

    - #### getHighlightColor

          public Color getHighlightColor(Component c)

      Returns the highlight color of the etched border when rendered on the specified component. If no highlight color was specified at instantiation, the highlight color is derived from the specified component's background color.
      Parameters:
        `c` - the component for which the highlight may be derived
      Since:
        1.3

    - #### getHighlightColor

          public Color getHighlightColor()

      Returns the highlight color of the etched border. Will return null if no highlight color was specified at instantiation.
      Since:
        1.3

    - #### getShadowColor

          public Color getShadowColor(Component c)

      Returns the shadow color of the etched border when rendered on the specified component. If no shadow color was specified at instantiation, the shadow color is derived from the specified component's background color.
      Parameters:
        `c` - the component for which the shadow may be derived
      Since:
        1.3

    - #### getShadowColor

          public Color getShadowColor()

      Returns the shadow color of the etched border. Will return null if no shadow color was specified at instantiation.
      Since:
        1.3

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.