public class MetalLookAndFeel extends BasicLookAndFeel
The Java Look and Feel, otherwise known as Metal.
Each of the ComponentUI
s provided by MetalLookAndFeel
derives its behavior from the defaults table. Unless otherwise noted each of the ComponentUI
implementations in this package document the set of defaults they use. Unless otherwise noted the defaults are installed at the time installUI
is invoked, and follow the recommendations outlined in LookAndFeel
for installing defaults.
MetalLookAndFeel
derives it's color palette and fonts from MetalTheme
. The default theme is OceanTheme
. The theme can be changed using the setCurrentTheme
method, refer to it for details on changing the theme. Prior to 1.5 the default theme was DefaultMetalTheme
. The system property "swing.metalTheme"
can be set to "steel"
to indicate the default should be DefaultMetalTheme
.
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
.
MetalTheme
, DefaultMetalTheme
, OceanTheme
public MetalLookAndFeel()
public String getName()
Returns the name of this look and feel. This returns "Metal"
.
getName
in class LookAndFeel
public String getID()
Returns an identifier for this look and feel. This returns "Metal"
.
getID
in class LookAndFeel
public String getDescription()
Returns a short description of this look and feel. This returns "The Java(tm) Look and Feel"
.
getDescription
in class LookAndFeel
public boolean isNativeLookAndFeel()
Returns false
; MetalLookAndFeel
is not a native look and feel.
isNativeLookAndFeel
in class LookAndFeel
false
public boolean isSupportedLookAndFeel()
Returns true
; MetalLookAndFeel
can be run on any platform.
isSupportedLookAndFeel
in class LookAndFeel
true
UIManager.setLookAndFeel(javax.swing.LookAndFeel)
public boolean getSupportsWindowDecorations()
Returns true
; metal can provide Window
decorations.
getSupportsWindowDecorations
in class LookAndFeel
true
JDialog.setDefaultLookAndFeelDecorated(boolean)
, JFrame.setDefaultLookAndFeelDecorated(boolean)
, JRootPane.setWindowDecorationStyle(int)
protected void initClassDefaults(UIDefaults table)
Populates table
with mappings from uiClassID
to the fully qualified name of the ui class. MetalLookAndFeel
registers an entry for each of the classes in the package javax.swing.plaf.metal
that are named MetalXXXUI. The string XXX
is one of Swing's uiClassIDs. For the uiClassIDs
that do not have a class in metal, the corresponding class in javax.swing.plaf.basic
is used. For example, metal does not have a class named "MetalColorChooserUI"
, as such, javax.swing.plaf.basic.BasicColorChooserUI
is used.
initClassDefaults
in class BasicLookAndFeel
table
- the UIDefaults
instance the entries are added toNullPointerException
- if table
is null
BasicLookAndFeel.initClassDefaults(javax.swing.UIDefaults)
protected void initSystemColorDefaults(UIDefaults table)
Populates table
with system colors. The following values are added to table
:
Key | Value |
---|---|
"desktop" |
theme.getDesktopColor() |
"activeCaption" |
theme.getWindowTitleBackground() |
"activeCaptionText" |
theme.getWindowTitleForeground() |
"activeCaptionBorder" |
theme.getPrimaryControlShadow() |
"inactiveCaption" |
theme.getWindowTitleInactiveBackground() |
"inactiveCaptionText" |
theme.getWindowTitleInactiveForeground() |
"inactiveCaptionBorder" |
theme.getControlShadow() |
"window" |
theme.getWindowBackground() |
"windowBorder" |
theme.getControl() |
"windowText" |
theme.getUserTextColor() |
"menu" |
theme.getMenuBackground() |
"menuText" |
theme.getMenuForeground() |
"text" |
theme.getWindowBackground() |
"textText" |
theme.getUserTextColor() |
"textHighlight" |
theme.getTextHighlightColor() |
"textHighlightText" |
theme.getHighlightedTextColor() |
"textInactiveText" |
theme.getInactiveSystemTextColor() |
"control" |
theme.getControl() |
"controlText" |
theme.getControlTextColor() |
"controlHighlight" |
theme.getControlHighlight() |
"controlLtHighlight" |
theme.getControlHighlight() |
"controlShadow" |
theme.getControlShadow() |
"controlDkShadow" |
theme.getControlDarkShadow() |
"scrollbar" |
theme.getControl() |
"info" |
theme.getPrimaryControl() |
"infoText" |
theme.getPrimaryControlInfo() |
theme
corresponds to the current MetalTheme
. initSystemColorDefaults
in class BasicLookAndFeel
table
- the UIDefaults
object the values are added toNullPointerException
- if table
is null
SystemColor
, BasicLookAndFeel.getDefaults()
, BasicLookAndFeel.loadSystemColors(javax.swing.UIDefaults, java.lang.String[], boolean)
protected void initComponentDefaults(UIDefaults table)
Populates table
with the defaults for metal.
initComponentDefaults
in class BasicLookAndFeel
table
- the UIDefaults
to add the values toNullPointerException
- if table
is null
protected void createDefaultTheme()
Ensures the current MetalTheme
is non-null
. This is a cover method for getCurrentTheme
.
getCurrentTheme()
public UIDefaults getDefaults()
Returns the look and feel defaults. This invokes, in order, createDefaultTheme()
, super.getDefaults()
and getCurrentTheme().addCustomEntriesToTable(table)
.
While this method is public, it should only be invoked by the UIManager
when the look and feel is set as the current look and feel and after initialize
has been invoked.
getDefaults
in class BasicLookAndFeel
createDefaultTheme()
, BasicLookAndFeel.getDefaults()
, MetalTheme.addCustomEntriesToTable(UIDefaults)
public void provideErrorFeedback(Component component)
Invoked when the user attempts an invalid operation, such as pasting into an uneditable JTextField
that has focus. The default implementation beeps. Subclasses that wish different behavior should override this and provide the additional feedback.
provideErrorFeedback
in class LookAndFeel
component
- the Component
the error occurred in, may be null
indicating the error condition is not directly associated with a Component
public static void setCurrentTheme(MetalTheme theme)
Set the theme used by MetalLookAndFeel
.
After the theme is set, MetalLookAndFeel
needs to be re-installed and the uis need to be recreated. The following shows how to do this:
MetalLookAndFeel.setCurrentTheme(theme); // re-install the Metal Look and Feel UIManager.setLookAndFeel(new MetalLookAndFeel()); // Update the ComponentUIs for all Components. This // needs to be invoked for all windows. SwingUtilities.updateComponentTreeUI(rootComponent);If this is not done the results are undefined.
theme
- the theme to useNullPointerException
- if theme
is null
getCurrentTheme()
public static MetalTheme getCurrentTheme()
Return the theme currently being used by MetalLookAndFeel
. If the current theme is null
, the default theme is created.
setCurrentTheme(javax.swing.plaf.metal.MetalTheme)
public Icon getDisabledIcon(JComponent component, Icon icon)
Returns an Icon
with a disabled appearance. This method is used to generate a disabled Icon
when one has not been specified. For example, if you create a JButton
and only specify an Icon
via setIcon
this method will be called to generate the disabled Icon
. If null is passed as icon
this method returns null.
Some look and feels might not render the disabled Icon, in which case they will ignore this.
getDisabledIcon
in class LookAndFeel
component
- JComponent that will display the Icon, may be nullicon
- Icon to generate disable icon from.public Icon getDisabledSelectedIcon(JComponent component, Icon icon)
Returns an Icon
for use by disabled components that are also selected. This method is used to generate an Icon
for components that are in both the disabled and selected states but do not have a specific Icon
for this state. For example, if you create a JButton
and only specify an Icon
via setIcon
this method will be called to generate the disabled and selected Icon
. If null is passed as icon
this method returns null.
Some look and feels might not render the disabled and selected Icon, in which case they will ignore this.
getDisabledSelectedIcon
in class LookAndFeel
component
- JComponent that will display the Icon, may be nullicon
- Icon to generate disabled and selected icon from.public static FontUIResource getControlTextFont()
Returns the control text font of the current theme. This is a cover method for getCurrentTheme().getControlTextColor()
.
MetalTheme
public static FontUIResource getSystemTextFont()
Returns the system text font of the current theme. This is a cover method for getCurrentTheme().getSystemTextFont()
.
MetalTheme
public static FontUIResource getUserTextFont()
Returns the user text font of the current theme. This is a cover method for getCurrentTheme().getUserTextFont()
.
MetalTheme
public static FontUIResource getMenuTextFont()
Returns the menu text font of the current theme. This is a cover method for getCurrentTheme().getMenuTextFont()
.
MetalTheme
public static FontUIResource getWindowTitleFont()
Returns the window title font of the current theme. This is a cover method for getCurrentTheme().getWindowTitleFont()
.
MetalTheme
public static FontUIResource getSubTextFont()
Returns the sub-text font of the current theme. This is a cover method for getCurrentTheme().getSubTextFont()
.
MetalTheme
public static ColorUIResource getDesktopColor()
Returns the desktop color of the current theme. This is a cover method for getCurrentTheme().getDesktopColor()
.
MetalTheme
public static ColorUIResource getFocusColor()
Returns the focus color of the current theme. This is a cover method for getCurrentTheme().getFocusColor()
.
MetalTheme
public static ColorUIResource getWhite()
Returns the white color of the current theme. This is a cover method for getCurrentTheme().getWhite()
.
MetalTheme
public static ColorUIResource getBlack()
Returns the black color of the current theme. This is a cover method for getCurrentTheme().getBlack()
.
MetalTheme
public static ColorUIResource getControl()
Returns the control color of the current theme. This is a cover method for getCurrentTheme().getControl()
.
MetalTheme
public static ColorUIResource getControlShadow()
Returns the control shadow color of the current theme. This is a cover method for getCurrentTheme().getControlShadow()
.
MetalTheme
public static ColorUIResource getControlDarkShadow()
Returns the control dark shadow color of the current theme. This is a cover method for getCurrentTheme().getControlDarkShadow()
.
MetalTheme
public static ColorUIResource getControlInfo()
Returns the control info color of the current theme. This is a cover method for getCurrentTheme().getControlInfo()
.
MetalTheme
public static ColorUIResource getControlHighlight()
Returns the control highlight color of the current theme. This is a cover method for getCurrentTheme().getControlHighlight()
.
MetalTheme
public static ColorUIResource getControlDisabled()
Returns the control disabled color of the current theme. This is a cover method for getCurrentTheme().getControlDisabled()
.
MetalTheme
public static ColorUIResource getPrimaryControl()
Returns the primary control color of the current theme. This is a cover method for getCurrentTheme().getPrimaryControl()
.
MetalTheme
public static ColorUIResource getPrimaryControlShadow()
Returns the primary control shadow color of the current theme. This is a cover method for getCurrentTheme().getPrimaryControlShadow()
.
MetalTheme
public static ColorUIResource getPrimaryControlDarkShadow()
Returns the primary control dark shadow color of the current theme. This is a cover method for getCurrentTheme().getPrimaryControlDarkShadow()
.
MetalTheme
public static ColorUIResource getPrimaryControlInfo()
Returns the primary control info color of the current theme. This is a cover method for getCurrentTheme().getPrimaryControlInfo()
.
MetalTheme
public static ColorUIResource getPrimaryControlHighlight()
Returns the primary control highlight color of the current theme. This is a cover method for getCurrentTheme().getPrimaryControlHighlight()
.
MetalTheme
public static ColorUIResource getSystemTextColor()
Returns the system text color of the current theme. This is a cover method for getCurrentTheme().getSystemTextColor()
.
MetalTheme
public static ColorUIResource getControlTextColor()
Returns the control text color of the current theme. This is a cover method for getCurrentTheme().getControlTextColor()
.
MetalTheme
public static ColorUIResource getInactiveControlTextColor()
Returns the inactive control text color of the current theme. This is a cover method for getCurrentTheme().getInactiveControlTextColor()
.
MetalTheme
public static ColorUIResource getInactiveSystemTextColor()
Returns the inactive system text color of the current theme. This is a cover method for getCurrentTheme().getInactiveSystemTextColor()
.
MetalTheme
public static ColorUIResource getUserTextColor()
Returns the user text color of the current theme. This is a cover method for getCurrentTheme().getUserTextColor()
.
MetalTheme
public static ColorUIResource getTextHighlightColor()
Returns the text highlight color of the current theme. This is a cover method for getCurrentTheme().getTextHighlightColor()
.
MetalTheme
public static ColorUIResource getHighlightedTextColor()
Returns the highlighted text color of the current theme. This is a cover method for getCurrentTheme().getHighlightedTextColor()
.
MetalTheme
public static ColorUIResource getWindowBackground()
Returns the window background color of the current theme. This is a cover method for getCurrentTheme().getWindowBackground()
.
MetalTheme
public static ColorUIResource getWindowTitleBackground()
Returns the window title background color of the current theme. This is a cover method for getCurrentTheme().getWindowTitleBackground()
.
MetalTheme
public static ColorUIResource getWindowTitleForeground()
Returns the window title foreground color of the current theme. This is a cover method for getCurrentTheme().getWindowTitleForeground()
.
MetalTheme
public static ColorUIResource getWindowTitleInactiveBackground()
Returns the window title inactive background color of the current theme. This is a cover method for getCurrentTheme().getWindowTitleInactiveBackground()
.
MetalTheme
public static ColorUIResource getWindowTitleInactiveForeground()
Returns the window title inactive foreground color of the current theme. This is a cover method for getCurrentTheme().getWindowTitleInactiveForeground()
.
MetalTheme
public static ColorUIResource getMenuBackground()
Returns the menu background color of the current theme. This is a cover method for getCurrentTheme().getMenuBackground()
.
MetalTheme
public static ColorUIResource getMenuForeground()
Returns the menu foreground color of the current theme. This is a cover method for getCurrentTheme().getMenuForeground()
.
MetalTheme
public static ColorUIResource getMenuSelectedBackground()
Returns the menu selected background color of the current theme. This is a cover method for getCurrentTheme().getMenuSelectedBackground()
.
MetalTheme
public static ColorUIResource getMenuSelectedForeground()
Returns the menu selected foreground color of the current theme. This is a cover method for getCurrentTheme().getMenuSelectedForeground()
.
MetalTheme
public static ColorUIResource getMenuDisabledForeground()
Returns the menu disabled foreground color of the current theme. This is a cover method for getCurrentTheme().getMenuDisabledForeground()
.
MetalTheme
public static ColorUIResource getSeparatorBackground()
Returns the separator background color of the current theme. This is a cover method for getCurrentTheme().getSeparatorBackground()
.
MetalTheme
public static ColorUIResource getSeparatorForeground()
Returns the separator foreground color of the current theme. This is a cover method for getCurrentTheme().getSeparatorForeground()
.
MetalTheme
public static ColorUIResource getAcceleratorForeground()
Returns the accelerator foreground color of the current theme. This is a cover method for getCurrentTheme().getAcceleratorForeground()
.
MetalTheme
public static ColorUIResource getAcceleratorSelectedForeground()
Returns the accelerator selected foreground color of the current theme. This is a cover method for getCurrentTheme().getAcceleratorSelectedForeground()
.
MetalTheme
public LayoutStyle getLayoutStyle()
Returns a LayoutStyle
implementing the Java look and feel design guidelines as specified at http://www.oracle.com/technetwork/java/hig-136467.html.
getLayoutStyle
in class LookAndFeel
LayoutStyle.getInstance()
© 1993–2017, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.