<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSwing_JFC%2FSynth_Look_feel</id>
		<title>Java/Swing JFC/Synth Look feel - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java%2FSwing_JFC%2FSynth_Look_feel"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/Synth_Look_feel&amp;action=history"/>
		<updated>2026-04-18T20:32:32Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Swing_JFC/Synth_Look_feel&amp;diff=7461&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/Synth_Look_feel&amp;diff=7461&amp;oldid=prev"/>
				<updated>2010-06-01T06:46:09Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 06:46, 1 июня 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java/Swing_JFC/Synth_Look_feel&amp;diff=7460&amp;oldid=prev</id>
		<title> в 18:01, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java/Swing_JFC/Synth_Look_feel&amp;diff=7460&amp;oldid=prev"/>
				<updated>2010-05-31T18:01:44Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Create and use Synth Look and feel ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */ &lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * SynthApplication.java requires a Synth XML file.&lt;br /&gt;
 * It should be in the class directory. Also required&lt;br /&gt;
 * are image files, which should be in the classes\images&lt;br /&gt;
 * directory&lt;br /&gt;
 */&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
import javax.swing.*;          &lt;br /&gt;
import java.awt.*;&lt;br /&gt;
import java.awt.event.*;&lt;br /&gt;
import javax.swing.plaf.synth.*;&lt;br /&gt;
public class SynthApplication implements ActionListener {&lt;br /&gt;
    private static String labelPrefix = &amp;quot;Number of button clicks: &amp;quot;;&lt;br /&gt;
    private int numClicks = 0;&lt;br /&gt;
    private static String synthFile = &amp;quot;buttonSkin.xml&amp;quot;;&lt;br /&gt;
    final JLabel label = new JLabel(labelPrefix + &amp;quot;0    &amp;quot;);&lt;br /&gt;
    public Component createComponents() {&lt;br /&gt;
        JButton button = new JButton(&amp;quot;I&amp;quot;m a Swing button!&amp;quot;);&lt;br /&gt;
        button.setMnemonic(KeyEvent.VK_I);&lt;br /&gt;
        button.addActionListener(this);&lt;br /&gt;
        label.setLabelFor(button);&lt;br /&gt;
        /*&lt;br /&gt;
         * An easy way to put space between a top-level container&lt;br /&gt;
         * and its contents is to put the contents in a JPanel&lt;br /&gt;
         * that has an &amp;quot;empty&amp;quot; border.&lt;br /&gt;
         */&lt;br /&gt;
        JPanel pane = new JPanel(new GridLayout(0, 1));&lt;br /&gt;
        pane.add(button);&lt;br /&gt;
        pane.add(label);&lt;br /&gt;
        pane.setBorder(BorderFactory.createEmptyBorder(&lt;br /&gt;
                                        30, //top&lt;br /&gt;
                                        30, //left&lt;br /&gt;
                                        10, //bottom&lt;br /&gt;
                                        30) //right&lt;br /&gt;
                                        );&lt;br /&gt;
        return pane;&lt;br /&gt;
    }&lt;br /&gt;
    public void actionPerformed(ActionEvent e) {&lt;br /&gt;
        numClicks++;&lt;br /&gt;
        label.setText(labelPrefix + numClicks);&lt;br /&gt;
    }&lt;br /&gt;
    private static void initLookAndFeel() {&lt;br /&gt;
       // String lookAndFeel = &amp;quot;com.sun.java.swing.plaf.motif.MotifLookAndFeel&amp;quot;;&lt;br /&gt;
       SynthLookAndFeel lookAndFeel = new SynthLookAndFeel();&lt;br /&gt;
       &lt;br /&gt;
 &lt;br /&gt;
            try {&lt;br /&gt;
              lookAndFeel.load(SynthApplication.class.getResourceAsStream(synthFile),&lt;br /&gt;
                          SynthApplication.class);&lt;br /&gt;
                UIManager.setLookAndFeel(lookAndFeel);&lt;br /&gt;
            } &lt;br /&gt;
            &lt;br /&gt;
            catch (Exception e) {&lt;br /&gt;
                System.err.println(&amp;quot;Couldn&amp;quot;t get specified look and feel (&amp;quot;&lt;br /&gt;
                                   + lookAndFeel&lt;br /&gt;
                                   + &amp;quot;), for some reason.&amp;quot;);&lt;br /&gt;
                System.err.println(&amp;quot;Using the default look and feel.&amp;quot;);&lt;br /&gt;
                e.printStackTrace();&lt;br /&gt;
            }&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
    /**&lt;br /&gt;
     * Create the GUI and show it.  For thread safety,&lt;br /&gt;
     * this method should be invoked from the&lt;br /&gt;
     * event-dispatching thread.&lt;br /&gt;
     */&lt;br /&gt;
    private static void createAndShowGUI() {&lt;br /&gt;
        //Set the look and feel.&lt;br /&gt;
        initLookAndFeel();&lt;br /&gt;
        //Make sure we have nice window decorations.&lt;br /&gt;
        JFrame.setDefaultLookAndFeelDecorated(true);&lt;br /&gt;
        //Create and set up the window.&lt;br /&gt;
        JFrame frame = new JFrame(&amp;quot;SynthApplication&amp;quot;);&lt;br /&gt;
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
        SynthApplication app = new SynthApplication();&lt;br /&gt;
        Component contents = app.createComponents();&lt;br /&gt;
        frame.getContentPane().add(contents, BorderLayout.CENTER);&lt;br /&gt;
        //Display the window.&lt;br /&gt;
        frame.pack();&lt;br /&gt;
        frame.setVisible(true);&lt;br /&gt;
    }&lt;br /&gt;
    public static void main(String[] args) {&lt;br /&gt;
        //Schedule a job for the event-dispatching thread:&lt;br /&gt;
        //creating and showing this application&amp;quot;s GUI.&lt;br /&gt;
        javax.swing.SwingUtilities.invokeLater(new Runnable() {&lt;br /&gt;
            public void run() {&lt;br /&gt;
                createAndShowGUI();&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
File: buttonSkin.xml&lt;br /&gt;
&amp;lt;synth&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Style that all regions will use --&amp;gt;&lt;br /&gt;
  &amp;lt;style id=&amp;quot;backingStyle&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Make all the regions opaque--&amp;gt;&lt;br /&gt;
    &amp;lt;opaque value=&amp;quot;TRUE&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;font name=&amp;quot;Dialog&amp;quot; size=&amp;quot;12&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;state&amp;gt;&lt;br /&gt;
      &amp;lt;!-- Provide default colors --&amp;gt;&lt;br /&gt;
      &amp;lt;color value=&amp;quot;#D8D987&amp;quot; type=&amp;quot;BACKGROUND&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;color value=&amp;quot;RED&amp;quot; type=&amp;quot;FOREGROUND&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/state&amp;gt;&lt;br /&gt;
  &amp;lt;/style&amp;gt;&lt;br /&gt;
  &amp;lt;bind style=&amp;quot;backingStyle&amp;quot; type=&amp;quot;region&amp;quot; key=&amp;quot;.*&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;style id=&amp;quot;buttonStyle&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Shift the text one pixel when pressed --&amp;gt;&lt;br /&gt;
    &amp;lt;property key=&amp;quot;Button.textShiftOffset&amp;quot; type=&amp;quot;integer&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;insets top=&amp;quot;15&amp;quot; left=&amp;quot;20&amp;quot; right=&amp;quot;20&amp;quot; bottom=&amp;quot;15&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;state&amp;gt;&lt;br /&gt;
      &amp;lt;imagePainter method=&amp;quot;buttonBackground&amp;quot; path=&amp;quot;images/button.png&amp;quot;&lt;br /&gt;
                    sourceInsets=&amp;quot;10 10 10 10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/state&amp;gt;&lt;br /&gt;
    &amp;lt;state value=&amp;quot;PRESSED&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;imagePainter method=&amp;quot;buttonBackground&amp;quot; path=&amp;quot;images/button2.png&amp;quot;&lt;br /&gt;
                    sourceInsets=&amp;quot;10 10 10 10&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/state&amp;gt;&lt;br /&gt;
  &amp;lt;/style&amp;gt;&lt;br /&gt;
  &amp;lt;!-- Bind buttonStyle to all JButtons --&amp;gt;&lt;br /&gt;
  &amp;lt;bind style=&amp;quot;buttonStyle&amp;quot; type=&amp;quot;region&amp;quot; key=&amp;quot;button&amp;quot;/&amp;gt; &lt;br /&gt;
&amp;lt;/synth&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Synth dialog style ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.&lt;br /&gt;
 *&lt;br /&gt;
 * Redistribution and use in source and binary forms, with or without&lt;br /&gt;
 * modification, are permitted provided that the following conditions&lt;br /&gt;
 * are met:&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions of source code must retain the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Redistributions in binary form must reproduce the above copyright&lt;br /&gt;
 *     notice, this list of conditions and the following disclaimer in the&lt;br /&gt;
 *     documentation and/or other materials provided with the distribution.&lt;br /&gt;
 *&lt;br /&gt;
 *   - Neither the name of Sun Microsystems nor the names of its&lt;br /&gt;
 *     contributors may be used to endorse or promote products derived&lt;br /&gt;
 *     from this software without specific prior written permission.&lt;br /&gt;
 *&lt;br /&gt;
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &amp;quot;AS&lt;br /&gt;
 * IS&amp;quot; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR&lt;br /&gt;
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR&lt;br /&gt;
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,&lt;br /&gt;
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,&lt;br /&gt;
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR&lt;br /&gt;
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF&lt;br /&gt;
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING&lt;br /&gt;
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;br /&gt;
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;br /&gt;
 */ &lt;br /&gt;
package lookandfeel;&lt;br /&gt;
import java.awt.ruponent;&lt;br /&gt;
import javax.swing.*;&lt;br /&gt;
import static javax.swing.GroupLayout.Alignment.*;&lt;br /&gt;
import javax.swing.plaf.synth.*;&lt;br /&gt;
public class SynthDialog extends JFrame {&lt;br /&gt;
    public SynthDialog() {&lt;br /&gt;
      JLabel label = new JLabel(&amp;quot;Find What:&amp;quot;);;&lt;br /&gt;
        JTextField textField = new JTextField();&lt;br /&gt;
        JCheckBox caseCheckBox = new JCheckBox(&amp;quot;Match Case&amp;quot;);&lt;br /&gt;
        JCheckBox wrapCheckBox = new JCheckBox(&amp;quot;Wrap Around&amp;quot;);&lt;br /&gt;
        JCheckBox wholeCheckBox = new JCheckBox(&amp;quot;Whole Words&amp;quot;);&lt;br /&gt;
        JCheckBox backCheckBox = new JCheckBox(&amp;quot;Search Backwards&amp;quot;);&lt;br /&gt;
        JButton findButton = new JButton(&amp;quot;Find&amp;quot;);&lt;br /&gt;
        JButton cancelButton = new JButton(&amp;quot;Cancel&amp;quot;);&lt;br /&gt;
        // remove redundant default border of check boxes - they would hinder&lt;br /&gt;
        // correct spacing and aligning (maybe not needed on some look and feels)&lt;br /&gt;
        caseCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));&lt;br /&gt;
        wrapCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));&lt;br /&gt;
        wholeCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));&lt;br /&gt;
        backCheckBox.setBorder(BorderFactory.createEmptyBorder(0, 0, 0, 0));&lt;br /&gt;
        GroupLayout layout = new GroupLayout(getContentPane());&lt;br /&gt;
        getContentPane().setLayout(layout);&lt;br /&gt;
        layout.setAutoCreateGaps(true);&lt;br /&gt;
        layout.setAutoCreateContainerGaps(true);&lt;br /&gt;
        layout.setHorizontalGroup(layout.createSequentialGroup()&lt;br /&gt;
            .addComponent(label)&lt;br /&gt;
            .addGroup(layout.createParallelGroup(LEADING)&lt;br /&gt;
                .addComponent(textField)&lt;br /&gt;
                .addGroup(layout.createSequentialGroup()&lt;br /&gt;
                    .addGroup(layout.createParallelGroup(LEADING)&lt;br /&gt;
                        .addComponent(caseCheckBox)&lt;br /&gt;
                        .addComponent(wholeCheckBox))&lt;br /&gt;
                    .addGroup(layout.createParallelGroup(LEADING)&lt;br /&gt;
                        .addComponent(wrapCheckBox)&lt;br /&gt;
                        .addComponent(backCheckBox))))&lt;br /&gt;
            .addGroup(layout.createParallelGroup(LEADING)&lt;br /&gt;
                .addComponent(findButton)&lt;br /&gt;
                .addComponent(cancelButton))&lt;br /&gt;
        );&lt;br /&gt;
       &lt;br /&gt;
        layout.linkSize(SwingConstants.HORIZONTAL, findButton, cancelButton);&lt;br /&gt;
        layout.setVerticalGroup(layout.createSequentialGroup()&lt;br /&gt;
            .addGroup(layout.createParallelGroup(BASELINE)&lt;br /&gt;
                .addComponent(label)&lt;br /&gt;
                .addComponent(textField)&lt;br /&gt;
                .addComponent(findButton))&lt;br /&gt;
            .addGroup(layout.createParallelGroup(LEADING)&lt;br /&gt;
                .addGroup(layout.createSequentialGroup()&lt;br /&gt;
                    .addGroup(layout.createParallelGroup(BASELINE)&lt;br /&gt;
                        .addComponent(caseCheckBox)&lt;br /&gt;
                        .addComponent(wrapCheckBox))&lt;br /&gt;
                    .addGroup(layout.createParallelGroup(BASELINE)&lt;br /&gt;
                        .addComponent(wholeCheckBox)&lt;br /&gt;
                        .addComponent(backCheckBox)))&lt;br /&gt;
                .addComponent(cancelButton))&lt;br /&gt;
        );&lt;br /&gt;
        setTitle(&amp;quot;Find&amp;quot;);&lt;br /&gt;
        pack();&lt;br /&gt;
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    &lt;br /&gt;
    private static void initLookAndFeel() {&lt;br /&gt;
         SynthLookAndFeel lookAndFeel = new SynthLookAndFeel();&lt;br /&gt;
       &lt;br /&gt;
 &lt;br /&gt;
            try {&lt;br /&gt;
              &lt;br /&gt;
              // SynthLookAndFeel load() method throws a checked exception&lt;br /&gt;
              // (java.text.ParseException) so it must be handled&lt;br /&gt;
              lookAndFeel.load(SynthDialog.class.getResourceAsStream(&amp;quot;synthDemo.xml&amp;quot;),&lt;br /&gt;
                          SynthDialog.class);&lt;br /&gt;
                UIManager.setLookAndFeel(lookAndFeel);&lt;br /&gt;
            } &lt;br /&gt;
            &lt;br /&gt;
            catch (Exception e) {&lt;br /&gt;
                System.err.println(&amp;quot;Couldn&amp;quot;t get specified look and feel (&amp;quot;&lt;br /&gt;
                                   + lookAndFeel&lt;br /&gt;
                                   + &amp;quot;), for some reason.&amp;quot;);&lt;br /&gt;
                System.err.println(&amp;quot;Using the default look and feel.&amp;quot;);&lt;br /&gt;
                e.printStackTrace();&lt;br /&gt;
            }&lt;br /&gt;
        &lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    public static void main(String args[]) {&lt;br /&gt;
        java.awt.EventQueue.invokeLater(new Runnable() {&lt;br /&gt;
            public void run() {&lt;br /&gt;
                try {&lt;br /&gt;
                   //Set the look and feel.&lt;br /&gt;
               initLookAndFeel();&lt;br /&gt;
                   //Make sure we have nice window decorations.&lt;br /&gt;
                JFrame.setDefaultLookAndFeelDecorated(true);  &lt;br /&gt;
                 } catch (Exception ex) {&lt;br /&gt;
                    ex.printStackTrace();&lt;br /&gt;
                }&lt;br /&gt;
                new SynthDialog().setVisible(true);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
File: synthDemo.xml&lt;br /&gt;
&amp;lt;synth&amp;gt;&lt;br /&gt;
 &amp;lt;!-- Style that all regions will use --&amp;gt;&lt;br /&gt;
  &amp;lt;style id=&amp;quot;backingStyle&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Make all the regions opaque--&amp;gt;&lt;br /&gt;
    &amp;lt;opaque value=&amp;quot;TRUE&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;font name=&amp;quot;Dialog&amp;quot; size=&amp;quot;14&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;state&amp;gt;&lt;br /&gt;
      &amp;lt;color value=&amp;quot;#D8D987&amp;quot; type=&amp;quot;BACKGROUND&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;color value=&amp;quot;RED&amp;quot; type=&amp;quot;FOREGROUND&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/state&amp;gt;&lt;br /&gt;
  &amp;lt;/style&amp;gt;&lt;br /&gt;
  &amp;lt;bind style=&amp;quot;backingStyle&amp;quot; type=&amp;quot;region&amp;quot; key=&amp;quot;.*&amp;quot;/&amp;gt;&lt;br /&gt;
  &lt;br /&gt;
  &amp;lt;style id=&amp;quot;textfield&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;insets top=&amp;quot;4&amp;quot; left=&amp;quot;6&amp;quot; bottom=&amp;quot;4&amp;quot; right=&amp;quot;6&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;state&amp;gt;&lt;br /&gt;
       &amp;lt;font name=&amp;quot;Verdana&amp;quot; size=&amp;quot;14&amp;quot;/&amp;gt;&lt;br /&gt;
       &amp;lt;color value=&amp;quot;#D2DFF2&amp;quot; type=&amp;quot;BACKGROUND&amp;quot;/&amp;gt;       &lt;br /&gt;
       &amp;lt;color value=&amp;quot;#000000&amp;quot; type=&amp;quot;TEXT_FOREGROUND&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/state&amp;gt;&lt;br /&gt;
    &amp;lt;imagePainter method=&amp;quot;textFieldBorder&amp;quot; path=&amp;quot;images/textfield.png&amp;quot;&lt;br /&gt;
                  sourceInsets=&amp;quot;4 6 4 6&amp;quot; paintCenter=&amp;quot;false&amp;quot;/&amp;gt;&lt;br /&gt;
  &amp;lt;/style&amp;gt;&lt;br /&gt;
  &amp;lt;bind style=&amp;quot;textfield&amp;quot; type=&amp;quot;region&amp;quot; key=&amp;quot;TextField&amp;quot;/&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
  &amp;lt;style id=&amp;quot;button&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;!-- Shift the text one pixel when pressed --&amp;gt;&lt;br /&gt;
    &amp;lt;property key=&amp;quot;Button.textShiftOffset&amp;quot; type=&amp;quot;integer&amp;quot; value=&amp;quot;1&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;!-- set size of buttons --&amp;gt;&lt;br /&gt;
    &amp;lt;insets top=&amp;quot;15&amp;quot; left=&amp;quot;20&amp;quot; bottom=&amp;quot;15&amp;quot; right=&amp;quot;20&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;state&amp;gt;&lt;br /&gt;
      &amp;lt;imagePainter method=&amp;quot;buttonBackground&amp;quot; path=&amp;quot;images/button.png&amp;quot;&lt;br /&gt;
                    sourceInsets=&amp;quot;10 10 10 10&amp;quot; /&amp;gt;&lt;br /&gt;
      &amp;lt;font name=&amp;quot;Dialog&amp;quot; size=&amp;quot;16&amp;quot;/&amp;gt;&lt;br /&gt;
      &amp;lt;color type=&amp;quot;TEXT_FOREGROUND&amp;quot; value=&amp;quot;#FFFFFF&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/state&amp;gt;&lt;br /&gt;
              &lt;br /&gt;
    &amp;lt;state value=&amp;quot;PRESSED&amp;quot;&amp;gt; &lt;br /&gt;
      &amp;lt;imagePainter method=&amp;quot;buttonBackground&amp;quot;&lt;br /&gt;
             path=&amp;quot;images/button_press.png&amp;quot;&lt;br /&gt;
                    sourceInsets=&amp;quot;10 10 10 10&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/state&amp;gt;&lt;br /&gt;
            &lt;br /&gt;
    &amp;lt;state value=&amp;quot;MOUSE_OVER&amp;quot;&amp;gt;    &lt;br /&gt;
      &amp;lt;imagePainter method=&amp;quot;buttonBackground&amp;quot;&lt;br /&gt;
             path=&amp;quot;images/button_over.png&amp;quot;&lt;br /&gt;
                   sourceInsets=&amp;quot;10 10 10 10&amp;quot; /&amp;gt;&lt;br /&gt;
    &amp;lt;/state&amp;gt;&lt;br /&gt;
  &amp;lt;/style&amp;gt;&lt;br /&gt;
  &amp;lt;bind style=&amp;quot;button&amp;quot; type=&amp;quot;region&amp;quot; key=&amp;quot;Button&amp;quot;/&amp;gt;&lt;br /&gt;
      &lt;br /&gt;
      &lt;br /&gt;
  &amp;lt;style id=&amp;quot;checkbox&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;imageIcon id=&amp;quot;check_off&amp;quot; path=&amp;quot;images/checkbox_off.png&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;imageIcon id=&amp;quot;check_on&amp;quot; path=&amp;quot;images/checkbox_on.png&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;property key=&amp;quot;CheckBox.icon&amp;quot; value=&amp;quot;check_off&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;state value=&amp;quot;SELECTED&amp;quot;&amp;gt;   &lt;br /&gt;
      &amp;lt;property key=&amp;quot;CheckBox.icon&amp;quot; value=&amp;quot;check_on&amp;quot;/&amp;gt;&lt;br /&gt;
    &amp;lt;/state&amp;gt;&lt;br /&gt;
  &amp;lt;/style&amp;gt;&lt;br /&gt;
  &amp;lt;bind style=&amp;quot;checkbox&amp;quot; type=&amp;quot;region&amp;quot; key=&amp;quot;Checkbox&amp;quot;/&amp;gt;   &lt;br /&gt;
  &lt;br /&gt;
&amp;lt;/synth&amp;gt;&lt;br /&gt;
 &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
			</entry>

	</feed>