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
`MetalTheme()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`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 declared in 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()`