Java™ Platform
Standard Ed. 6

javax.swing.plaf.synth
Class SynthLookAndFeel

java.lang.Object
  extended by javax.swing.LookAndFeel
      extended by javax.swing.plaf.basic.BasicLookAndFeel
          extended by javax.swing.plaf.synth.SynthLookAndFeel
All Implemented Interfaces:
Serializable

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.

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
SynthLookAndFeel()
          Creates a SynthLookAndFeel.
 
Method Summary
static ComponentUI createUI(JComponent c)
          Creates the Synth look and feel ComponentUI for the passed in JComponent.
 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 c.
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 SynthStyles that will be used by this SynthLookAndFeel.
 void load(URL url)
          Loads the set of SynthStyles that will be used by this SynthLookAndFeel.
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 SynthStyles from the SynthStyleFactory when the ancestor of the JComponent changes.
 void uninitialize()
          Called by UIManager when this look and feel is uninstalled.
static void updateStyles(Component c)
          Updates the style associated with c, and all its children.
 
Methods inherited from class javax.swing.plaf.basic.BasicLookAndFeel
createAudioAction, getAudioActionMap, initClassDefaults, initComponentDefaults, initSystemColorDefaults, loadSystemColors, playSound
 
Methods inherited from class javax.swing.LookAndFeel
getDesktopPropertyValue, getDisabledIcon, getDisabledSelectedIcon, getLayoutStyle, getSupportsWindowDecorations, installBorder, installColors, installColorsAndFont, installProperty, loadKeyBindings, makeComponentInputMap, makeIcon, makeInputMap, makeKeyBindings, provideErrorFeedback, toString, uninstallBorder
 
Methods inherited from 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 SynthStyles, or invoke setStyleFactory.

See Also:
load(java.io.InputStream, java.lang.Class), setStyleFactory(javax.swing.plaf.synth.SynthStyleFactory)
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 the ComponentUI for
Returns:
ComponentUI to use for c

load

public void load(InputStream input,
                 Class<?> resourceBase)
          throws ParseException
Loads the set of SynthStyles 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 is null

load

public void load(URL url)
          throws ParseException,
                 IOException
Loads the set of SynthStyles 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 - the URL to load the set of SynthStyle from
Throws:
ParseException - if there is an error in parsing
IllegalArgumentException - if synthSet is null
IOException - if synthSet cannot be opened as an InputStream
Since:
1.6

initialize

public void initialize()
Called by UIManager when this look and feel is installed.

Overrides:
initialize in class BasicLookAndFeel
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 class BasicLookAndFeel
See Also:
LookAndFeel.initialize(), UIManager.setLookAndFeel(javax.swing.LookAndFeel)

getDefaults

public UIDefaults getDefaults()
Returns the defaults for this SynthLookAndFeel.

Overrides:
getDefaults in class BasicLookAndFeel
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 class LookAndFeel
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 class LookAndFeel
Returns:
false

getDescription

public String getDescription()
Returns a textual description of SynthLookAndFeel.

Specified by:
getDescription in class LookAndFeel
Returns:
textual description of synth.

getName

public String getName()
Return a short string that identifies this look and feel.

Specified by:
getName in class LookAndFeel
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 class LookAndFeel
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 the SynthStyleFactory when the ancestor changed.

Java™ Platform
Standard Ed. 6

Submit a bug or feature
For further API reference and developer documentation, see Java SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2008 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.