javax.swing.plaf.metal

## Class MetalTheme

- java.lang.Object
- - javax.swing.plaf.metal.MetalTheme

- Direct Known Subclasses:
    DefaultMetalTheme

      public abstract class MetalTheme
      extends Object

  `MetalTheme` provides the color palette and fonts used by the Java Look and Feel.

  `MetalTheme` is abstract, see `DefaultMetalTheme` and `OceanTheme` for concrete implementations.

  `MetalLookAndFeel` maintains the current theme that the the `ComponentUI` implementations for metal use. Refer to `MetalLookAndFeel.setCurrentTheme(MetalTheme)` for details on changing the current theme.

  `MetalTheme` provides a number of public methods for getting colors. These methods are implemented in terms of a handful of protected abstract methods. A subclass need only override the protected abstract methods (`getPrimary1`, `getPrimary2`, `getPrimary3`, `getSecondary1`, `getSecondary2`, and `getSecondary3`); although a subclass may override the other public methods for more control over the set of colors that are used.

  Concrete implementations of `MetalTheme` must return `non-null` values from all methods. While the behavior of returning `null` is not specified, returning `null` will result in incorrect behavior.

  It is strongly recommended that subclasses return completely opaque colors. To do otherwise may result in rendering problems, such as visual garbage.

  See Also:
    `DefaultMetalTheme`, `OceanTheme`, `MetalLookAndFeel.setCurrentTheme(javax.swing.plaf.metal.MetalTheme)`

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MetalTheme()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `addCustomEntriesToTable(UIDefaults table)` | Adds values specific to this theme to the defaults table.
    `ColorUIResource` | `getAcceleratorForeground()` | Returns the accelerator foreground color.
    `ColorUIResource` | `getAcceleratorSelectedForeground()` | Returns the accelerator selected foreground color.
    `protected ColorUIResource` | `getBlack()` | Returns the black color.
    `ColorUIResource` | `getControl()` | Returns the control color.
    `ColorUIResource` | `getControlDarkShadow()` | Returns the control dark shadow color.
    `ColorUIResource` | `getControlDisabled()` | Returns the control disabled color.
    `ColorUIResource` | `getControlHighlight()` | Returns the control highlight color.
    `ColorUIResource` | `getControlInfo()` | Returns the control info color.
    `ColorUIResource` | `getControlShadow()` | Returns the control shadow color.
    `ColorUIResource` | `getControlTextColor()` | Returns the control text color.
    `abstract FontUIResource` | `getControlTextFont()` | Returns the control text font.
    `ColorUIResource` | `getDesktopColor()` | Returns the desktop color.
    `ColorUIResource` | `getFocusColor()` | Returns the focus color.
    `ColorUIResource` | `getHighlightedTextColor()` | Returns the highlighted text color.
    `ColorUIResource` | `getInactiveControlTextColor()` | Returns the inactive control text color.
    `ColorUIResource` | `getInactiveSystemTextColor()` | Returns the inactive system text color.
    `ColorUIResource` | `getMenuBackground()` | Returns the menu background color.
    `ColorUIResource` | `getMenuDisabledForeground()` | Returns the menu disabled foreground color.
    `ColorUIResource` | `getMenuForeground()` | Returns the menu foreground color.
    `ColorUIResource` | `getMenuSelectedBackground()` | Returns the menu selected background color.
    `ColorUIResource` | `getMenuSelectedForeground()` | Returns the menu selected foreground color.
    `abstract FontUIResource` | `getMenuTextFont()` | Returns the menu text font.
    `abstract String` | `getName()` | Returns the name of this theme.
    `protected abstract ColorUIResource` | `getPrimary1()` | Returns the primary 1 color.
    `protected abstract ColorUIResource` | `getPrimary2()` | Returns the primary 2 color.
    `protected abstract ColorUIResource` | `getPrimary3()` | Returns the primary 3 color.
    `ColorUIResource` | `getPrimaryControl()` | Returns the primary control color.
    `ColorUIResource` | `getPrimaryControlDarkShadow()` | Returns the primary control dark shadow color.
    `ColorUIResource` | `getPrimaryControlHighlight()` | Returns the primary control highlight color.
    `ColorUIResource` | `getPrimaryControlInfo()` | Returns the primary control info color.
    `ColorUIResource` | `getPrimaryControlShadow()` | Returns the primary control shadow color.
    `protected abstract ColorUIResource` | `getSecondary1()` | Returns the secondary 1 color.
    `protected abstract ColorUIResource` | `getSecondary2()` | Returns the secondary 2 color.
    `protected abstract ColorUIResource` | `getSecondary3()` | Returns the secondary 3 color.
    `ColorUIResource` | `getSeparatorBackground()` | Returns the separator background color.
    `ColorUIResource` | `getSeparatorForeground()` | Returns the separator foreground color.
    `abstract FontUIResource` | `getSubTextFont()` | Returns the sub-text font.
    `ColorUIResource` | `getSystemTextColor()` | Returns the system text color.
    `abstract FontUIResource` | `getSystemTextFont()` | Returns the system text font.
    `ColorUIResource` | `getTextHighlightColor()` | Returns the text highlight color.
    `ColorUIResource` | `getUserTextColor()` | Returns the user text color.
    `abstract FontUIResource` | `getUserTextFont()` | Returns the user text font.
    `protected ColorUIResource` | `getWhite()` | Returns the white color.
    `ColorUIResource` | `getWindowBackground()` | Returns the window background color.
    `ColorUIResource` | `getWindowTitleBackground()` | Returns the window title background color.
    `abstract FontUIResource` | `getWindowTitleFont()` | Returns the window title font.
    `ColorUIResource` | `getWindowTitleForeground()` | Returns the window title foreground color.
    `ColorUIResource` | `getWindowTitleInactiveBackground()` | Returns the window title inactive background color.
    `ColorUIResource` | `getWindowTitleInactiveForeground()` | Returns the window title inactive foreground color.

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

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

- - ### Constructor Detail

    - #### MetalTheme

          public MetalTheme()

  - ### Method Detail

    - #### getName

          public abstract String getName()

      Returns the name of this theme.
      Returns:
        the name of this theme

    - #### getPrimary1

          protected abstract ColorUIResource getPrimary1()

      Returns the primary 1 color.
      Returns:
        the primary 1 color

    - #### getPrimary2

          protected abstract ColorUIResource getPrimary2()

      Returns the primary 2 color.
      Returns:
        the primary 2 color

    - #### getPrimary3

          protected abstract ColorUIResource getPrimary3()

      Returns the primary 3 color.
      Returns:
        the primary 3 color

    - #### getSecondary1

          protected abstract ColorUIResource getSecondary1()

      Returns the secondary 1 color.
      Returns:
        the secondary 1 color

    - #### getSecondary2

          protected abstract ColorUIResource getSecondary2()

      Returns the secondary 2 color.
      Returns:
        the secondary 2 color

    - #### getSecondary3

          protected abstract ColorUIResource getSecondary3()

      Returns the secondary 3 color.
      Returns:
        the secondary 3 color

    - #### getControlTextFont

          public abstract FontUIResource getControlTextFont()

      Returns the control text font.
      Returns:
        the control text font

    - #### getSystemTextFont

          public abstract FontUIResource getSystemTextFont()

      Returns the system text font.
      Returns:
        the system text font

    - #### getUserTextFont

          public abstract FontUIResource getUserTextFont()

      Returns the user text font.
      Returns:
        the user text font

    - #### getMenuTextFont

          public abstract FontUIResource getMenuTextFont()

      Returns the menu text font.
      Returns:
        the menu text font

    - #### getWindowTitleFont

          public abstract FontUIResource getWindowTitleFont()

      Returns the window title font.
      Returns:
        the window title font

    - #### getSubTextFont

          public abstract FontUIResource getSubTextFont()

      Returns the sub-text font.
      Returns:
        the sub-text font

    - #### getWhite

          protected ColorUIResource getWhite()

      Returns the white color. This returns opaque white (`0xFFFFFFFF`).
      Returns:
        the white color

    - #### getBlack

          protected ColorUIResource getBlack()

      Returns the black color. This returns opaque black (`0xFF000000`).
      Returns:
        the black color

    - #### getFocusColor

          public ColorUIResource getFocusColor()

      Returns the focus color. This returns the value of `getPrimary2()`.
      Returns:
        the focus color

    - #### getDesktopColor

          public ColorUIResource getDesktopColor()

      Returns the desktop color. This returns the value of `getPrimary2()`.
      Returns:
        the desktop color

    - #### getControl

          public ColorUIResource getControl()

      Returns the control color. This returns the value of `getSecondary3()`.
      Returns:
        the control color

    - #### getControlShadow

          public ColorUIResource getControlShadow()

      Returns the control shadow color. This returns the value of `getSecondary2()`.
      Returns:
        the control shadow color

    - #### getControlDarkShadow

          public ColorUIResource getControlDarkShadow()

      Returns the control dark shadow color. This returns the value of `getSecondary1()`.
      Returns:
        the control dark shadow color

    - #### getControlInfo

          public ColorUIResource getControlInfo()

      Returns the control info color. This returns the value of `getBlack()`.
      Returns:
        the control info color

    - #### getControlHighlight

          public ColorUIResource getControlHighlight()

      Returns the control highlight color. This returns the value of `getWhite()`.
      Returns:
        the control highlight color

    - #### getControlDisabled

          public ColorUIResource getControlDisabled()

      Returns the control disabled color. This returns the value of `getSecondary2()`.
      Returns:
        the control disabled color

    - #### getPrimaryControl

          public ColorUIResource getPrimaryControl()

      Returns the primary control color. This returns the value of `getPrimary3()`.
      Returns:
        the primary control color

    - #### getPrimaryControlShadow

          public ColorUIResource getPrimaryControlShadow()

      Returns the primary control shadow color. This returns the value of `getPrimary2()`.
      Returns:
        the primary control shadow color

    - #### getPrimaryControlDarkShadow

          public ColorUIResource getPrimaryControlDarkShadow()

      Returns the primary control dark shadow color. This returns the value of `getPrimary1()`.
      Returns:
        the primary control dark shadow color

    - #### getPrimaryControlInfo

          public ColorUIResource getPrimaryControlInfo()

      Returns the primary control info color. This returns the value of `getBlack()`.
      Returns:
        the primary control info color

    - #### getPrimaryControlHighlight

          public ColorUIResource getPrimaryControlHighlight()

      Returns the primary control highlight color. This returns the value of `getWhite()`.
      Returns:
        the primary control highlight color

    - #### getSystemTextColor

          public ColorUIResource getSystemTextColor()

      Returns the system text color. This returns the value of `getBlack()`.
      Returns:
        the system text color

    - #### getControlTextColor

          public ColorUIResource getControlTextColor()

      Returns the control text color. This returns the value of `getControlInfo()`.
      Returns:
        the control text color

    - #### getInactiveControlTextColor

          public ColorUIResource getInactiveControlTextColor()

      Returns the inactive control text color. This returns the value of `getControlDisabled()`.
      Returns:
        the inactive control text color

    - #### getInactiveSystemTextColor

          public ColorUIResource getInactiveSystemTextColor()

      Returns the inactive system text color. This returns the value of `getSecondary2()`.
      Returns:
        the inactive system text color

    - #### getUserTextColor

          public ColorUIResource getUserTextColor()

      Returns the user text color. This returns the value of `getBlack()`.
      Returns:
        the user text color

    - #### getTextHighlightColor

          public ColorUIResource getTextHighlightColor()

      Returns the text highlight color. This returns the value of `getPrimary3()`.
      Returns:
        the text highlight color

    - #### getHighlightedTextColor

          public ColorUIResource getHighlightedTextColor()

      Returns the highlighted text color. This returns the value of `getControlTextColor()`.
      Returns:
        the highlighted text color

    - #### getWindowBackground

          public ColorUIResource getWindowBackground()

      Returns the window background color. This returns the value of `getWhite()`.
      Returns:
        the window background color

    - #### getWindowTitleBackground

          public ColorUIResource getWindowTitleBackground()

      Returns the window title background color. This returns the value of `getPrimary3()`.
      Returns:
        the window title background color

    - #### getWindowTitleForeground

          public ColorUIResource getWindowTitleForeground()

      Returns the window title foreground color. This returns the value of `getBlack()`.
      Returns:
        the window title foreground color

    - #### getWindowTitleInactiveBackground

          public ColorUIResource getWindowTitleInactiveBackground()

      Returns the window title inactive background color. This returns the value of `getSecondary3()`.
      Returns:
        the window title inactive background color

    - #### getWindowTitleInactiveForeground

          public ColorUIResource getWindowTitleInactiveForeground()

      Returns the window title inactive foreground color. This returns the value of `getBlack()`.
      Returns:
        the window title inactive foreground color

    - #### getMenuBackground

          public ColorUIResource getMenuBackground()

      Returns the menu background color. This returns the value of `getSecondary3()`.
      Returns:
        the menu background color

    - #### getMenuForeground

          public ColorUIResource getMenuForeground()

      Returns the menu foreground color. This returns the value of `getBlack()`.
      Returns:
        the menu foreground color

    - #### getMenuSelectedBackground

          public ColorUIResource getMenuSelectedBackground()

      Returns the menu selected background color. This returns the value of `getPrimary2()`.
      Returns:
        the menu selected background color

    - #### getMenuSelectedForeground

          public ColorUIResource getMenuSelectedForeground()

      Returns the menu selected foreground color. This returns the value of `getBlack()`.
      Returns:
        the menu selected foreground color

    - #### getMenuDisabledForeground

          public ColorUIResource getMenuDisabledForeground()

      Returns the menu disabled foreground color. This returns the value of `getSecondary2()`.
      Returns:
        the menu disabled foreground color

    - #### getSeparatorBackground

          public ColorUIResource getSeparatorBackground()

      Returns the separator background color. This returns the value of `getWhite()`.
      Returns:
        the separator background color

    - #### getSeparatorForeground

          public ColorUIResource getSeparatorForeground()

      Returns the separator foreground color. This returns the value of `getPrimary1()`.
      Returns:
        the separator foreground color

    - #### getAcceleratorForeground

          public ColorUIResource getAcceleratorForeground()

      Returns the accelerator foreground color. This returns the value of `getPrimary1()`.
      Returns:
        the accelerator foreground color

    - #### getAcceleratorSelectedForeground

          public ColorUIResource getAcceleratorSelectedForeground()

      Returns the accelerator selected foreground color. This returns the value of `getBlack()`.
      Returns:
        the accelerator selected foreground color

    - #### addCustomEntriesToTable

          public void addCustomEntriesToTable(UIDefaults table)

      Adds values specific to this theme to the defaults table. This method is invoked when the look and feel defaults are obtained from `MetalLookAndFeel`.

      This implementation does nothing; it is provided for subclasses that wish to customize the defaults table.

      Parameters:
        `table` - the `UIDefaults` to add the values to
      See Also:
        `MetalLookAndFeel.getDefaults()`

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.