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.