javax.swing
public abstract class LookAndFeel extends Object
javax.swing
. A
cross-platform look-and-feel (the MetalLookAndFeel
) is provided.Constructor and Description |
---|
LookAndFeel() |
Modifier and Type | Method and Description |
---|---|
UIDefaults |
getDefaults()
Creates and returns a look-and-feel specific defaults table.
|
abstract String |
getDescription()
Returns a description of the look and feel.
|
static Object |
getDesktopPropertyValue(String systemPropertyName,
Object fallbackValue)
Returns the value of
Toolkit.getDefaultToolkit()
.getDesktopProperty(systemPropertyName) , or
fallbackValue if no such property is defined. |
abstract String |
getID()
Returns an identifier for the look and feel.
|
abstract String |
getName()
Returns the name for the look and feel.
|
boolean |
getSupportsWindowDecorations()
Returns
true when the look-and-feel supports window
decorations, and false otherwise. |
void |
initialize()
Initializes the look-and-feel.
|
static void |
installBorder(JComponent c,
String defaultBorderName)
Convenience method for installing a component's default
Border
object on the specified component if either the border is currently
null or already an instance of UIResource . |
static void |
installColors(JComponent c,
String defaultBgName,
String defaultFgName)
Convenience method for initializing a component's foreground and
background color properties with values from the current defaults table.
|
static void |
installColorsAndFont(JComponent component,
String defaultBgName,
String defaultFgName,
String defaultFontName)
Convenience method for initializing a component's foreground, background
and font properties with values from the current defaults table.
|
static void |
installProperty(JComponent c,
String propertyName,
Object value)
This methods installs a UI property if it hasn't already been set by an
application.
|
abstract boolean |
isNativeLookAndFeel()
Returns
true if the look-and-feel is the "native"
look-and-feel for the current platform, and false otherwise. |
abstract boolean |
isSupportedLookAndFeel()
Returns
true if the look-and-feel is supported on the
current operating system, and false otherwise. |
static void |
loadKeyBindings(InputMap retMap,
Object[] keys)
Loads the bindings in keys into retMap.
|
static ComponentInputMap |
makeComponentInputMap(JComponent c,
Object[] keys)
Creates a ComponentInputMap from keys.
|
static Object |
makeIcon(Class<?> baseClass,
String gifFile)
Utility method that creates a UIDefaults.LazyValue that creates an
ImageIcon UIResource for the specified gifFile filename.
|
static InputMap |
makeInputMap(Object[] keys)
Creates a InputMap from keys.
|
static JTextComponent.KeyBinding[] |
makeKeyBindings(Object[] keyBindingList)
Convenience method for building lists of KeyBindings.
|
void |
provideErrorFeedback(Component component)
Invoked when the user attempts an invalid operation.
|
String |
toString()
Returns a string that displays and identifies this object's properties.
|
void |
uninitialize()
UIManager.setLookAndFeel calls this method just before we're replaced by
a new default look and feel.
|
static void |
uninstallBorder(JComponent c)
Convenience method for un-installing a component's default border on the
specified component if the border is currently an instance of UIResource.
|
public LookAndFeel()
public UIDefaults getDefaults()
UIManager.setLookAndFeel(LookAndFeel)
and
shouldn't be called again (as it creates a large table of defaults).public abstract String getDescription()
public static Object getDesktopPropertyValue(String systemPropertyName, Object fallbackValue)
Toolkit.getDefaultToolkit()
.getDesktopProperty(systemPropertyName)
, or
fallbackValue
if no such property is defined.systemPropertyName
- the system property name.fallbackValue
- the fallback value.fallbackValue
.public abstract String getID()
public abstract String getName()
public boolean getSupportsWindowDecorations()
true
when the look-and-feel supports window
decorations, and false
otherwise. This default implementation
always returns false
and needs to be overridden when the
derived look-and-feel supports this.false
.public void initialize()
UIManager.setLookAndFeel(LookAndFeel)
method calls this method
before the first call (and typically the only call) to
getDefaults()
. This default implementation does nothing, but
subclasses can override this behaviour.public static void installBorder(JComponent c, String defaultBorderName)
Border
object on the specified component if either the border is currently
null
or already an instance of UIResource
.c
- the component (null
not permitted).defaultBorderName
- the border name (for lookup in the UIDefaults
table).public static void installColors(JComponent c, String defaultBgName, String defaultFgName)
c
- the component (null
not permitted).defaultBgName
- the key for the background color in the UIDefaults
table.defaultFgName
- the key for the foreground color in the UIDefaults
table.public static void installColorsAndFont(JComponent component, String defaultBgName, String defaultFgName, String defaultFontName)
component
- the component (null
not permitted).defaultBgName
- the key for the background color in the UIDefaults
table.defaultFgName
- the key for the foreground color in the UIDefaults
table.defaultFontName
- the key for the font in the UIDefaults table.public abstract boolean isNativeLookAndFeel()
true
if the look-and-feel is the "native"
look-and-feel for the current platform, and false
otherwise.
A native look-and-feel emulates the appearance and behaviour of the
default windowing system on the host operating system.public abstract boolean isSupportedLookAndFeel()
true
if the look-and-feel is supported on the
current operating system, and false
otherwise. This
mechanism is provided so that it is possible to prevent a look-and-feel
from being used on some operating systems (usually for legal, not
technical, reasons).public static void loadKeyBindings(InputMap retMap, Object[] keys)
keys
describes the InputMap, every even indexed
item is either a KeyStroke or a String representing a KeyStroke and every
odd indexed item is the Object associated with that KeyStroke in an
ActionMap.retMap
- the InputMap into which we load bindingskeys
- the Object array describing the InputMap as abovepublic static ComponentInputMap makeComponentInputMap(JComponent c, Object[] keys)
keys
describes the InputMap, every even indexed
item is either a KeyStroke or a String representing a KeyStroke and every
odd indexed item is the Object associated with that KeyStroke in an
ActionMap.c
- the JComponent associated with the ComponentInputMapkeys
- the Object array describing the InputMap as abovepublic static Object makeIcon(Class<?> baseClass, String gifFile)
baseClass
- the base class for accessing the icon resource.gifFile
- the file name.UIDefaults.LazyValue
that serves up an
IconUIResource
.public static InputMap makeInputMap(Object[] keys)
keys
describes the InputMap, every even indexed
item is either a KeyStroke or a String representing a KeyStroke and every
odd indexed item is the Object associated with that KeyStroke in an
ActionMap.keys
- the Object array describing the InputMap as abovepublic static JTextComponent.KeyBinding[] makeKeyBindings(Object[] keyBindingList)
keyBindingList
is an array of KeyStroke-Action pairs where
even indexed elements are KeyStrokes or Strings representing KeyStrokes
and odd indexed elements are the associated Actions.keyBindingList
- the array of KeyStroke-Action pairspublic void provideErrorFeedback(Component component)
component
- the component the error occured inpublic String toString()
toString
in class Object
Object.getClass()
,
Object.hashCode()
,
Class.getName()
,
Integer.toHexString(int)
public void uninitialize()
public static void uninstallBorder(JComponent c)
c
- the component (null
not permitted).public static void installProperty(JComponent c, String propertyName, Object value)
Type | Supported properties |
---|---|
JComponent |
opaque, autoscrolls |
AbstractButton |
borderPainted, rolloverEnabled, iconTextGap,
contentAreaFilled |
JDesktopPane |
dragMode |
JSplitPane |
dividerSize, oneTouchExpandable |
JTable |
rowHeight |
JTree |
rowHeight, scrollsOnExpand, showsRootHandles |
c
- the component to install the property topropertyName
- the name of the propertyvalue
- the value of the propertyIllegalArgumentException
- if the specified property cannot be set
by this methodClassCastException
- if the property value does not match the
property typeNullPointerException
- if c
or
propertyValue
is null