Class BasicLookAndFeel
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
-
MetalLookAndFeel,SynthLookAndFeel
public abstract class BasicLookAndFeel extends LookAndFeel implements Serializable
Each of the ComponentUIs provided by
BasicLookAndFeel 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.
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.
Constructor Summary
| Modifier | Constructor | Description |
|---|---|---|
protected |
Constructor for subclasses to call. |
Method Summary
| Modifier and Type | Method | Description |
|---|---|---|
protected Action |
createAudioAction |
Creates and returns an Action used to play a sound. |
protected ActionMap |
getAudioActionMap() |
Returns an ActionMap containing the audio actions for this look and feel. |
UIDefaults |
getDefaults() |
Returns the look and feel defaults. |
protected void |
initClassDefaults |
Populates table with mappings from uiClassID to the fully qualified name of the ui class. |
protected void |
initComponentDefaults |
Populates table with the defaults for the basic look and feel. |
protected void |
initSystemColorDefaults |
Populates table with system colors. |
protected void |
loadSystemColors |
Populates table with the name-color pairs in systemColors. |
protected void |
playSound |
If necessary, invokes actionPerformed on audioAction to play a sound. |
Methods declared in class javax.swing.LookAndFeel
getDescription, getDesktopPropertyValue, getDisabledIcon, getDisabledSelectedIcon, getID, getLayoutStyle, getName, getSupportsWindowDecorations, initialize, installBorder, installColors, installColorsAndFont, installProperty, isNativeLookAndFeel, isSupportedLookAndFeel, loadKeyBindings, makeComponentInputMap, makeIcon, makeInputMap, makeKeyBindings, provideErrorFeedback, toString, uninitialize, uninstallBorder
Constructor Details
BasicLookAndFeel
protected BasicLookAndFeel()
Method Details
getDefaults
public UIDefaults getDefaults()
UIDefaults is populated by invoking, in order, initClassDefaults, initSystemColorDefaults and initComponentDefaults. 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.
- Overrides:
-
getDefaultsin classLookAndFeel - Returns:
- the look and feel defaults
- See Also:
initClassDefaults
protected void initClassDefaults(UIDefaults table)
table with mappings from uiClassID to the fully qualified name of the ui class. The value for a particular uiClassID is
"javax.swing.plaf.basic.Basic + uiClassID". For example, the value for the uiClassID TreeUI is
"javax.swing.plaf.basic.BasicTreeUI".- Parameters:
-
table- theUIDefaultsinstance the entries are added to - Throws:
-
NullPointerException- iftableisnull - See Also:
initSystemColorDefaults
protected void initSystemColorDefaults(UIDefaults table)
table with system colors. This creates an array of name-color pairs and invokes
loadSystemColors. The name is a String that corresponds to the name of one of the static SystemColor fields in the
SystemColor class. A name-color pair is created for every such SystemColor field.
The color corresponds to a hex String as understood by Color.decode. For example, one of the name-color pairs is
"desktop"-"#005C5C". This corresponds to the
SystemColor field desktop, with a color value of new Color(0x005C5C).
The following shows two of the name-color pairs:
String[] nameColorPairs = new String[] {
"desktop", "#005C5C",
"activeCaption", "#000080" };
loadSystemColors(table, nameColorPairs, isNativeLookAndFeel());
As previously stated, this invokes loadSystemColors with the supplied table and name-color pair array. The last argument to loadSystemColors indicates whether the value of the field in SystemColor should be used. This method passes the value of
isNativeLookAndFeel() as the last argument to loadSystemColors.- Parameters:
-
table- theUIDefaultsobject the values are added to - Throws:
-
NullPointerException- iftableisnull - See Also:
loadSystemColors
protected void loadSystemColors(UIDefaults table, String[] systemColors, boolean useNative)
table with the name-color pairs in systemColors. Refer to initSystemColorDefaults(UIDefaults) for details on the format of systemColors. An entry is added to table for each of the name-color pairs in systemColors. The entry key is the name of the name-color pair.
The value of the entry corresponds to the color of the name-color pair. The value of the entry is calculated in one of two ways. With either approach the value is always a ColorUIResource.
If useNative is false, the color is created by using Color.decode to convert the
String into a Color. If decode can not convert the String into a Color (
NumberFormatException is thrown) then a
ColorUIResource of black is used.
If useNative is true, the color is the value of the field in SystemColor with the same name as the name of the name-color pair. If the field is not valid, a ColorUIResource of black is used.
- Parameters:
-
table- theUIDefaultsobject the values are added to -
systemColors- array ofname-colorpairs as described ininitSystemColorDefaults(UIDefaults) -
useNative- whether the color is obtained fromSystemColororColor.decode - Throws:
-
NullPointerException- ifsystemColorsisnull; orsystemColorsis not empty, andtableisnull; or one of the names of thename-colorpairs isnull; oruseNativeisfalseand one of thecolorsof thename-colorpairs isnull -
ArrayIndexOutOfBoundsException- ifuseNativeisfalseandsystemColors.lengthis odd - See Also:
initComponentDefaults
protected void initComponentDefaults(UIDefaults table)
table with the defaults for the basic look and feel.- Parameters:
-
table- theUIDefaultsto add the values to - Throws:
-
NullPointerException- iftableisnull
getAudioActionMap
protected ActionMap getAudioActionMap()
ActionMap containing the audio actions for this look and feel. The returned ActionMap contains Actions that embody the ability to render an auditory cue. These auditory cues map onto user and system activities that may be useful for an end user to know about (such as a dialog box appearing).
At the appropriate time, the ComponentUI is responsible for obtaining an Action out of the ActionMap and passing it to playSound.
This method first looks up the ActionMap from the defaults using the key "AuditoryCues.actionMap".
If the value is non-null, it is returned. If the value of the default "AuditoryCues.actionMap" is null and the value of the default "AuditoryCues.cueList" is non-null, an ActionMapUIResource is created and populated. Population is done by iterating over each of the elements of the "AuditoryCues.cueList" array, and invoking createAudioAction() to create an
Action for each element. The resulting Action is placed in the ActionMapUIResource, using the array element as the key. For example, if the
"AuditoryCues.cueList" array contains a single-element,
"audioKey", the ActionMapUIResource is created, then populated by way of actionMap.put(cueList[0],
createAudioAction(cueList[0])).
If the value of the default "AuditoryCues.actionMap" is null and the value of the default "AuditoryCues.cueList" is null, an empty ActionMapUIResource is created.
- Returns:
- an ActionMap containing
Actionsresponsible for playing auditory cues - Throws:
-
ClassCastException- if the value of the default"AuditoryCues.actionMap"is not anActionMap, or the value of the default"AuditoryCues.cueList"is not anObject[] - Since:
- 1.4
- See Also:
createAudioAction
protected Action createAudioAction(Object key)
Action used to play a sound. If key is non-null, an Action is created using the value from the defaults with key key. The value identifies the sound resource to load when actionPerformed is invoked on the Action. The sound resource is loaded into a byte[] by way of getClass().getResourceAsStream().
- Parameters:
-
key- the key identifying the audio action - Returns:
- an
Actionused to play the source, ornullifkeyisnull - Since:
- 1.4
- See Also:
playSound
protected void playSound(Action audioAction)
actionPerformed on audioAction to play a sound. The actionPerformed method is invoked if the value of the "AuditoryCues.playList" default is a
non-null Object[] containing a String entry equal to the name of the audioAction.- Parameters:
-
audioAction- an Action that knows how to render the audio associated with the system or user activity that is occurring; a value ofnull, is ignored - Throws:
-
ClassCastException- ifaudioActionisnon-nulland the value of the default"AuditoryCues.playList"is not anObject[] - Since:
- 1.4
© 1993, 2021, 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.
https://docs.oracle.com/en/java/javase/17/docs/api/java.desktop/javax/swing/plaf/basic/BasicLookAndFeel.html