Module java.desktop
Package 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()`