SYNTH Synth是J2SE5.0里新引入的Swing组件。 Synth是用户自定义的界面工具(一般被称作skinnable)。用户定义的skin(你叫它皮肤也好)是由一个xml文件控制。这样我们就不必再依靠UIManager去编写属性表来控制界面外观。我们只需要到下面的xml文件中调整部件定义就可以了,基本上省去了代码编写的工作。
下面是一个简单的例子, --来自sun java技术论坛
import java.awt.BorderLayout; import java.awt.EventQueue; import java.io.InputStream; import java.text.ParseException; import javax.swing.JButton; import javax.swing.JLabel; import javax.swing.JFrame; import static javax.swing.JFrame.*; import javax.swing.UIManager; import javax.swing.plaf.synth.SynthLookAndFeel; public class HelloSynth { public static void main(String args[]) { Runnable runner = new Runnable() { public void run() { SynthLookAndFeel synth = new SynthLookAndFeel(); try { Class aClass = HelloSynth.class; InputStream is = aClass.getResourceAsStream("synth.xml"); if (is == null) { System.err.println("Missing configuration file"); System.exit(-1); } synth.load(is, aClass); } catch (ParseException e) { System.err.println("Bad configuration file"); System.exit(-2); } try { UIManager.setLookAndFeel(synth); } catch (javax.swing.UnsupportedLookAndFeelException e) { System.err.println("Cannot change to Synth"); System.exit(-3); } JFrame frame = new JFrame("First"); frame.setDefaultCloseOperation(EXIT_ON_CLOSE); JLabel label = new JLabel("Hello, Synth"); label.setHorizontalAlignment(JLabel.CENTER); frame.add(label); frame.setSize(300, 100); frame.setVisible(true); } }; EventQueue.invokeLater(runner); } }