public class MetalLookAndFeel extends BasicLookAndFeel
Each of the ComponentUIs 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
| Constructor and Description |
|---|
MetalLookAndFeel()
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
createDefaultTheme()
Ensures the current
MetalTheme is
non-null.
|
static ColorUIResource |
getAcceleratorForeground()
Returns the accelerator foreground color of the current theme.
|
static ColorUIResource |
getAcceleratorSelectedForeground()
Returns the accelerator selected foreground color of the current theme.
|
static ColorUIResource |
getBlack()
Returns the black color of the current theme.
|
static ColorUIResource |
getControl()
Returns the control color of the current theme.
|
static ColorUIResource |
getControlDarkShadow()
Returns the control dark shadow color of the current theme.
|
static ColorUIResource |
getControlDisabled()
Returns the control disabled color of the current theme.
|
static ColorUIResource |
getControlHighlight()
Returns the control highlight color of the current theme.
|
static ColorUIResource |
getControlInfo()
Returns the control info color of the current theme.
|
static ColorUIResource |
getControlShadow()
Returns the control shadow color of the current theme.
|
static ColorUIResource |
getControlTextColor()
Returns the control text color of the current theme.
|
static FontUIResource |
getControlTextFont()
Returns the control text font of the current theme.
|
static MetalTheme |
getCurrentTheme()
Return the theme currently being used by
MetalLookAndFeel.
|
UIDefaults |
getDefaults()
Returns the look and feel defaults.
|
String |
getDescription()
Returns a short description of this look and feel.
|
static ColorUIResource |
getDesktopColor()
Returns the desktop color of the current theme.
|
Icon |
getDisabledIcon(JComponent
Returns an
Icon with a disabled appearance.
|
Icon |
getDisabledSelectedIcon(JComponent
Returns an
Icon for use by disabled components that are also selected.
|
static ColorUIResource |
getFocusColor()
Returns the focus color of the current theme.
|
static ColorUIResource |
getHighlightedTextColor()
Returns the highlighted text color of the current theme.
|
String |
getID()
Returns an identifier for this look and feel.
|
static ColorUIResource |
getInactiveControlTextColor()
Returns the inactive control text color of the current theme.
|
static ColorUIResource |
getInactiveSystemTextColor()
Returns the inactive system text color of the current theme.
|
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.
|
static ColorUIResource |
getMenuBackground()
Returns the menu background color of the current theme.
|
static ColorUIResource |
getMenuDisabledForeground()
Returns the menu disabled foreground color of the current theme.
|
static ColorUIResource |
getMenuForeground()
Returns the menu foreground color of the current theme.
|
static ColorUIResource |
getMenuSelectedBackground()
Returns the menu selected background color of the current theme.
|
static ColorUIResource |
getMenuSelectedForeground()
Returns the menu selected foreground color of the current theme.
|
static FontUIResource |
getMenuTextFont()
Returns the menu text font of the current theme.
|
String |
getName()
Returns the name of this look and feel.
|
static ColorUIResource |
getPrimaryControl()
Returns the primary control color of the current theme.
|
static ColorUIResource |
getPrimaryControlDarkShadow()
Returns the primary control dark shadow color of the current theme.
|
static ColorUIResource |
getPrimaryControlHighlight()
Returns the primary control highlight color of the current theme.
|
static ColorUIResource |
getPrimaryControlInfo()
Returns the primary control info color of the current theme.
|
static ColorUIResource |
getPrimaryControlShadow()
Returns the primary control shadow color of the current theme.
|
static ColorUIResource |
getSeparatorBackground()
Returns the separator background color of the current theme.
|
static ColorUIResource |
getSeparatorForeground()
Returns the separator foreground color of the current theme.
|
static FontUIResource |
getSubTextFont()
Returns the sub-text font of the current theme.
|
boolean |
getSupportsWindowDecorations()
Returns
true; metal can provide
Window decorations.
|
static ColorUIResource |
getSystemTextColor()
Returns the system text color of the current theme.
|
static FontUIResource |
getSystemTextFont()
Returns the system text font of the current theme.
|
static ColorUIResource |
getTextHighlightColor()
Returns the text highlight color of the current theme.
|
static ColorUIResource |
getUserTextColor()
Returns the user text color of the current theme.
|
static FontUIResource |
getUserTextFont()
Returns the user text font of the current theme.
|
static ColorUIResource |
getWhite()
Returns the white color of the current theme.
|
static ColorUIResource |
getWindowBackground()
Returns the window background color of the current theme.
|
static ColorUIResource |
getWindowTitleBackground()
Returns the window title background color of the current theme.
|
static FontUIResource |
getWindowTitleFont()
Returns the window title font of the current theme.
|
static ColorUIResource |
getWindowTitleForeground()
Returns the window title foreground color of the current theme.
|
static ColorUIResource |
getWindowTitleInactiveBackground()
Returns the window title inactive background color of the current theme.
|
static ColorUIResource |
getWindowTitleInactiveForeground()
Returns the window title inactive foreground color of the current theme.
|
protected void |
initClassDefaults(UIDefaults
Populates
table with mappings from
uiClassID to the fully qualified name of the ui class.
|
protected void |
initComponentDefaults(UIDefaults
Populates
table with the defaults for metal.
|
protected void |
initSystemColorDefaults(UIDefaults
Populates
table with system colors.
|
boolean |
isNativeLookAndFeel()
Returns
false;
MetalLookAndFeel is not a native look and feel.
|
boolean |
isSupportedLookAndFeel()
Returns
true;
MetalLookAndFeel can be run on any platform.
|
void |
provideErrorFeedback(Component
Invoked when the user attempts an invalid operation, such as pasting into an uneditable
JTextField that has focus.
|
static void |
setCurrentTheme(MetalTheme
Set the theme used by
MetalLookAndFeel.
|
createAudioAction, getAudioActionMap, initialize, loadSystemColors, playSound, uninitializegetDesktopPropertyValue, installBorder, installColors, installColorsAndFont, installProperty, loadKeyBindings, makeComponentInputMap, makeIcon, makeInputMap, makeKeyBindings, toString, uninstallBorderpublic StringgetName()
"Metal".
getName in class
LookAndFeel
public StringgetID()
"Metal".
getID in class
LookAndFeel
public StringgetDescription()
"The Java(tm) Look and Feel".
getDescription in class
LookAndFeel
public boolean isNativeLookAndFeel()
false;
MetalLookAndFeel is not a native look and feel.
isNativeLookAndFeel in class
LookAndFeel
false
public boolean isSupportedLookAndFeel()
true;
MetalLookAndFeel can be run on any platform.
isSupportedLookAndFeel in class
LookAndFeel
true
UIManager.setLookAndFeel(javax.swing.LookAndFeel)
public boolean getSupportsWindowDecorations()
true; metal can provide
Window decorations.
getSupportsWindowDecorations in class
LookAndFeel
true
JDialog.setDefaultLookAndFeelDecorated(boolean) ,
JFrame.setDefaultLookAndFeelDecorated(boolean) ,
JRootPane.setWindowDecorationStyle(int)
protected void initClassDefaults(UIDefaultstable)
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 to
NullPointerException - if
table is
null
BasicLookAndFeel.initClassDefaults(javax.swing.UIDefaults)
protected void initSystemColorDefaults(UIDefaultstable)
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 to
NullPointerException - if
table is
null
SystemColor,
BasicLookAndFeel.getDefaults() ,
BasicLookAndFeel.loadSystemColors(javax.swing.UIDefaults, java.lang.String[], boolean)
protected void initComponentDefaults(UIDefaultstable)
table with the defaults for metal.
initComponentDefaults in class
BasicLookAndFeel
table - the
UIDefaults to add the values to
NullPointerException - if
table is
null
protected void createDefaultTheme()
MetalTheme is
non-null. This is a cover method for
getCurrentTheme.
getCurrentTheme()
public UIDefaultsgetDefaults()
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(Componentcomponent)
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(MetalThemetheme)
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 use
NullPointerException - if
theme is
null
getCurrentTheme()
public static MetalThemegetCurrentTheme()
MetalLookAndFeel. If the current theme is
null, the default theme is created.
setCurrentTheme(javax.swing.plaf.metal.MetalTheme)
public IcongetDisabledIcon(JComponent component, Icon icon)
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 null
icon - Icon to generate disable icon from.
public IcongetDisabledSelectedIcon(JComponent component, Icon icon)
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 null
icon - Icon to generate disabled and selected icon from.
public static FontUIResourcegetControlTextFont()
getCurrentTheme().getControlTextColor().
MetalTheme
public static FontUIResourcegetSystemTextFont()
getCurrentTheme().getSystemTextFont().
MetalTheme
public static FontUIResourcegetUserTextFont()
getCurrentTheme().getUserTextFont().
MetalTheme
public static FontUIResourcegetMenuTextFont()
getCurrentTheme().getMenuTextFont().
MetalTheme
public static FontUIResourcegetWindowTitleFont()
getCurrentTheme().getWindowTitleFont().
MetalTheme
public static FontUIResourcegetSubTextFont()
getCurrentTheme().getSubTextFont().
MetalTheme
public static ColorUIResourcegetDesktopColor()
getCurrentTheme().getDesktopColor().
MetalTheme
public static ColorUIResourcegetFocusColor()
getCurrentTheme().getFocusColor().
MetalTheme
public static ColorUIResourcegetWhite()
getCurrentTheme().getWhite().
MetalTheme
public static ColorUIResourcegetBlack()
getCurrentTheme().getBlack().
MetalTheme
public static ColorUIResourcegetControl()
getCurrentTheme().getControl().
MetalTheme
public static ColorUIResourcegetControlShadow()
getCurrentTheme().getControlShadow().
MetalTheme
public static ColorUIResourcegetControlDarkShadow()
getCurrentTheme().getControlDarkShadow().
MetalTheme
public static ColorUIResourcegetControlInfo()
getCurrentTheme().getControlInfo().
MetalTheme
public static ColorUIResourcegetControlHighlight()
getCurrentTheme().getControlHighlight().
MetalTheme
public static ColorUIResourcegetControlDisabled()
getCurrentTheme().getControlDisabled().
MetalTheme
public static ColorUIResourcegetPrimaryControl()
getCurrentTheme().getPrimaryControl().
MetalTheme
public static ColorUIResourcegetPrimaryControlShadow()
getCurrentTheme().getPrimaryControlShadow().
MetalTheme
public static ColorUIResourcegetPrimaryControlDarkShadow()
getCurrentTheme().getPrimaryControlDarkShadow().
MetalTheme
public static ColorUIResourcegetPrimaryControlInfo()
getCurrentTheme().getPrimaryControlInfo().
MetalTheme
public static ColorUIResourcegetPrimaryControlHighlight()
getCurrentTheme().getPrimaryControlHighlight().
MetalTheme
public static ColorUIResourcegetSystemTextColor()
getCurrentTheme().getSystemTextColor().
MetalTheme
public static ColorUIResourcegetControlTextColor()
getCurrentTheme().getControlTextColor().
MetalTheme
public static ColorUIResourcegetInactiveControlTextColor()
getCurrentTheme().getInactiveControlTextColor().
MetalTheme
public static ColorUIResourcegetInactiveSystemTextColor()
getCurrentTheme().getInactiveSystemTextColor().
MetalTheme
public static ColorUIResourcegetUserTextColor()
getCurrentTheme().getUserTextColor().
MetalTheme
public static ColorUIResourcegetTextHighlightColor()
getCurrentTheme().getTextHighlightColor().
MetalTheme
public static ColorUIResourcegetHighlightedTextColor()
getCurrentTheme().getHighlightedTextColor().
MetalTheme
public static ColorUIResourcegetWindowBackground()
getCurrentTheme().getWindowBackground().
MetalTheme
public static ColorUIResourcegetWindowTitleBackground()
getCurrentTheme().getWindowTitleBackground().
MetalTheme
public static ColorUIResourcegetWindowTitleForeground()
getCurrentTheme().getWindowTitleForeground().
MetalTheme
public static ColorUIResourcegetWindowTitleInactiveBackground()
getCurrentTheme().getWindowTitleInactiveBackground().
MetalTheme
public static ColorUIResourcegetWindowTitleInactiveForeground()
getCurrentTheme().getWindowTitleInactiveForeground().
MetalTheme
public static ColorUIResourcegetMenuBackground()
getCurrentTheme().getMenuBackground().
MetalTheme
public static ColorUIResourcegetMenuForeground()
getCurrentTheme().getMenuForeground().
MetalTheme
public static ColorUIResourcegetMenuSelectedBackground()
getCurrentTheme().getMenuSelectedBackground().
MetalTheme
public static ColorUIResourcegetMenuSelectedForeground()
getCurrentTheme().getMenuSelectedForeground().
MetalTheme
public static ColorUIResourcegetMenuDisabledForeground()
getCurrentTheme().getMenuDisabledForeground().
MetalTheme
public static ColorUIResourcegetSeparatorBackground()
getCurrentTheme().getSeparatorBackground().
MetalTheme
public static ColorUIResourcegetSeparatorForeground()
getCurrentTheme().getSeparatorForeground().
MetalTheme
public static ColorUIResourcegetAcceleratorForeground()
getCurrentTheme().getAcceleratorForeground().
MetalTheme
public static ColorUIResourcegetAcceleratorSelectedForeground()
getCurrentTheme().getAcceleratorSelectedForeground().
MetalTheme
public LayoutStylegetLayoutStyle()
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()