Synth Look and Feel
|
|
The topic of this article may not meet Wikipedia's general notability guideline. Please help to establish notability by adding reliable, secondary sources about the topic. If notability cannot be established, the article is likely to be merged, redirected, or deleted. (April 2011) |
| This article relies on references to primary sources or sources affiliated with the subject, rather than references from independent authors and third-party publications. Please add citations from reliable sources. (April 2011) |
synth is a skinnable Java look and feel, which is configured with an XML property file.
According to Sun, goals for synth were:
- Enable to create custom look without writing any code.
- Allow appearance to be configured from images.
- Provide the ability to customize the look of a component based on its named properties.
- Provide a centralized point for overriding the look of all components.
- Enable custom rendering based on images, or user-defined
SynthPainters.
Contents |
[edit] History
synth is available beginning with version J2SE 5.0 of Java (see Java version history).
Java SE 6 Update 10 release and newer contain Nimbus, a cross-platform Look and Feel implemented with Synth. However, for backwards compatibility, Metal is still the default Swing look and feel.[1]
[edit] Architecture
Synth is a skinnable look and feel in which all painting is delegated to the components, without having to write any code (see Synth Look and Feel).
However synth does not provide a default look, and components that are not defined in the synth XML file will not be painted. It is however possible to assign a default style to all other widgets, and customize styles for some specific widgets only.
[edit] Example
The following XML declaration defines a style named textfield and binds it to all text fields. The defaultStyle allows to set a default font, foreground and background colors to all other widgets.
<synth> <style id="defaultStyle"> <font name="Verdana" size="16"/> <state> <color value="WHITE" type="BACKGROUND"/> <color value="BLACK" type="FOREGROUND"/> </state> </style> <bind style="defaultStyle" type="region" key=".*"/> <style id="textfield"> <state> <color value="yellow" type="BACKGROUND"/> </state> <imagePainter method="textFieldBorder" path="textfieldborder.png" sourceInsets="5 6 6 7" paintCenter="false"/> <insets top="5" left="6" bottom="6" right="7"/> </style> <bind style="textfield" type="region" key="TextField"/> </synth>
Supposing that the XML declaration is defined in a file named synthExample.xml, the following code loads the XML definition file and sets the current look and feel to synth (loading a synth Look and Feel is done using the load method of the SynthLookAndFeel class):
SynthLookAndFeel laf = new SynthLookAndFeel(); laf.load(new File("synthExample.xml").toURL()); UIManager.setLookAndFeel(laf);
[edit] See also
- Swing, the standard cross-platform widget toolkit for Java
- Pluggable look and feel
[edit] References
[edit] External links
Synth Look and FeelAPI documentation- synth file format
- synth tutorial
- another synth tutorial
- nimbus home page
| This computer library article is a stub. You can help Wikipedia by expanding it. |