Class SynthLookAndFeel
- java.lang.Object
-
- javax.swing.LookAndFeel
-
- javax.swing.plaf.basic.BasicLookAndFeel
-
- javax.swing.plaf.synth.SynthLookAndFeel
- All Implemented Interfaces:
Serializable
- Direct Known Subclasses:
NimbusLookAndFeel
public class SynthLookAndFeel extends BasicLookAndFeel
SynthLookAndFeel provides the basis for creating a customized look and feel. SynthLookAndFeel does not directly provide a look, all painting is delegated. You need to either provide a configuration file, by way of the load(java.io.InputStream, java.lang.Class<?>)
method, or provide your own SynthStyleFactory
to setStyleFactory(javax.swing.plaf.synth.SynthStyleFactory)
. Refer to the package summary for an example of loading a file, and SynthStyleFactory
for an example of providing your own SynthStyleFactory
to setStyleFactory
.
SynthIcon
interface provides paintIcon(synthContext, graphics, x, y, width, height)
method that allows to draw the icon with the given SynthContext
.
Warning: This class implements Serializable
as a side effect of it extending BasicLookAndFeel
. It is not intended to be serialized. An attempt to serialize it will result in NotSerializableException
.
- Since:
- 1.5
Constructor Summary
Constructor | Description |
---|---|
SynthLookAndFeel() | Creates a SynthLookAndFeel. |
Method Summary
Modifier and Type | Method | Description |
---|---|---|
static ComponentUI | createUI(JComponent c) | Creates the Synth look and feel |
UIDefaults | getDefaults() | Returns the defaults for this SynthLookAndFeel. |
String | getDescription() | Returns a textual description of SynthLookAndFeel. |
String | getID() | Return a string that identifies this look and feel. |
String | getName() | Return a short string that identifies this look and feel. |
static Region | getRegion(JComponent c) | Returns the Region for the JComponent |
static SynthStyle | getStyle(JComponent c,
Region region) | Gets a SynthStyle for the specified region of the specified component. |
static SynthStyleFactory | getStyleFactory() | Returns the current SynthStyleFactory. |
void | initialize() | Called by UIManager when this look and feel is installed. |
boolean | isNativeLookAndFeel() | Returns false, SynthLookAndFeel is not a native look and feel. |
boolean | isSupportedLookAndFeel() | Returns true, SynthLookAndFeel is always supported. |
void | load(InputStream input,
Class<?> resourceBase) | Loads the set of |
void | load(URL url) | Loads the set of |
static void | setStyleFactory(SynthStyleFactory cache) | Sets the SynthStyleFactory that the UI classes provided by synth will use to obtain a SynthStyle. |
boolean | shouldUpdateStyleOnAncestorChanged() | Returns whether or not the UIs should update their |
protected boolean | shouldUpdateStyleOnEvent(PropertyChangeEvent ev) | Returns whether or not the UIs should update their styles when a particular event occurs. |
void | uninitialize() | Called by UIManager when this look and feel is uninstalled. |
static void | updateStyles(Component c) | Updates the style associated with |
Methods declared in class javax.swing.plaf.basic.BasicLookAndFeel
createAudioAction, getAudioActionMap, initClassDefaults, initComponentDefaults, initSystemColorDefaults, loadSystemColors, playSound
Methods declared in class javax.swing.LookAndFeel
getDesktopPropertyValue, getDisabledIcon, getDisabledSelectedIcon, getLayoutStyle, getSupportsWindowDecorations, installBorder, installColors, installColorsAndFont, installProperty, loadKeyBindings, makeComponentInputMap, makeIcon, makeInputMap, makeKeyBindings, provideErrorFeedback, toString, uninstallBorder
Methods declared in class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Constructor Detail
SynthLookAndFeel
public SynthLookAndFeel()
Creates a SynthLookAndFeel.
For the returned SynthLookAndFeel
to be useful you need to invoke load
to specify the set of SynthStyle
s, or invoke setStyleFactory
.
Method Detail
setStyleFactory
public static void setStyleFactory(SynthStyleFactory cache)
Sets the SynthStyleFactory that the UI classes provided by synth will use to obtain a SynthStyle.
- Parameters:
-
cache
- SynthStyleFactory the UIs should use.
getStyleFactory
public static SynthStyleFactory getStyleFactory()
Returns the current SynthStyleFactory.
- Returns:
- SynthStyleFactory
getStyle
public static SynthStyle getStyle(JComponent c, Region region)
Gets a SynthStyle for the specified region of the specified component. This is not for general consumption, only custom UIs should call this method.
- Parameters:
-
c
- JComponent to get the SynthStyle for -
region
- Identifies the region of the specified component - Returns:
- SynthStyle to use.
updateStyles
public static void updateStyles(Component c)
Updates the style associated with c
, and all its children. This is a lighter version of SwingUtilities.updateComponentTreeUI
.
- Parameters:
-
c
- Component to update style for.
getRegion
public static Region getRegion(JComponent c)
Returns the Region for the JComponent c
.
- Parameters:
-
c
- JComponent to fetch the Region for - Returns:
- Region corresponding to
c
createUI
public static ComponentUI createUI(JComponent c)
Creates the Synth look and feel ComponentUI
for the passed in JComponent
.
- Parameters:
-
c
- JComponent to create theComponentUI
for - Returns:
- ComponentUI to use for
c
load
public void load(InputStream input, Class<?> resourceBase) throws ParseException
Loads the set of SynthStyle
s that will be used by this SynthLookAndFeel
. resourceBase
is used to resolve any path based resources, for example an Image
would be resolved by resourceBase.getResource(path)
. Refer to Synth File Format for more information.
- Parameters:
-
input
- InputStream to load from -
resourceBase
- used to resolve any images or other resources - Throws:
-
ParseException
- if there is an error in parsing -
IllegalArgumentException
- if input or resourceBase isnull
load
public void load(URL url) throws ParseException, IOException
Loads the set of SynthStyle
s that will be used by this SynthLookAndFeel
. Path based resources are resolved relatively to the specified URL
of the style. For example an Image
would be resolved by new URL(synthFile, path)
. Refer to Synth File Format for more information.
- Parameters:
-
url
- theURL
to load the set ofSynthStyle
from - Throws:
-
ParseException
- if there is an error in parsing -
IllegalArgumentException
- if synthSet isnull
-
IOException
- if synthSet cannot be opened as anInputStream
- Since:
- 1.6
initialize
public void initialize()
Called by UIManager when this look and feel is installed.
- Overrides:
-
initialize
in classLookAndFeel
- See Also:
-
LookAndFeel.uninitialize()
,UIManager.setLookAndFeel(javax.swing.LookAndFeel)
uninitialize
public void uninitialize()
Called by UIManager when this look and feel is uninstalled.
- Overrides:
-
uninitialize
in classLookAndFeel
- See Also:
-
LookAndFeel.initialize()
,UIManager.setLookAndFeel(javax.swing.LookAndFeel)
getDefaults
public UIDefaults getDefaults()
Returns the defaults for this SynthLookAndFeel.
- Overrides:
-
getDefaults
in classBasicLookAndFeel
- Returns:
- Defaults table.
- See Also:
-
BasicLookAndFeel.initClassDefaults(javax.swing.UIDefaults)
,BasicLookAndFeel.initSystemColorDefaults(javax.swing.UIDefaults)
,BasicLookAndFeel.initComponentDefaults(javax.swing.UIDefaults)
isSupportedLookAndFeel
public boolean isSupportedLookAndFeel()
Returns true, SynthLookAndFeel is always supported.
- Specified by:
-
isSupportedLookAndFeel
in classLookAndFeel
- Returns:
- true.
- See Also:
UIManager.setLookAndFeel(javax.swing.LookAndFeel)
isNativeLookAndFeel
public boolean isNativeLookAndFeel()
Returns false, SynthLookAndFeel is not a native look and feel.
- Specified by:
-
isNativeLookAndFeel
in classLookAndFeel
- Returns:
- false
getDescription
public String getDescription()
Returns a textual description of SynthLookAndFeel.
- Specified by:
-
getDescription
in classLookAndFeel
- Returns:
- textual description of synth.
getName
public String getName()
Return a short string that identifies this look and feel.
- Specified by:
-
getName
in classLookAndFeel
- Returns:
- a short string identifying this look and feel.
getID
public String getID()
Return a string that identifies this look and feel.
- Specified by:
-
getID
in classLookAndFeel
- Returns:
- a short string identifying this look and feel.
shouldUpdateStyleOnAncestorChanged
public boolean shouldUpdateStyleOnAncestorChanged()
Returns whether or not the UIs should update their SynthStyles
from the SynthStyleFactory
when the ancestor of the JComponent
changes. A subclass that provided a SynthStyleFactory
that based the return value from getStyle
off the containment hierarchy would override this method to return true.
- Returns:
- whether or not the UIs should update their
SynthStyles
from theSynthStyleFactory
when the ancestor changed.
shouldUpdateStyleOnEvent
protected boolean shouldUpdateStyleOnEvent(PropertyChangeEvent ev)
Returns whether or not the UIs should update their styles when a particular event occurs.
- Parameters:
-
ev
- aPropertyChangeEvent
- Returns:
- whether or not the UIs should update their styles
- Since:
- 1.7