Java by API/javax.swing.plaf.synth/SynthLookAndFeel — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Версия 17:43, 31 мая 2010
new SynthLookAndFeel()
import java.awt.BorderLayout;
import java.io.InputStream;
import java.text.ParseException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.plaf.synth.SynthLookAndFeel;
public class MainClass {
public static void main(String args[]) {
SynthLookAndFeel synth = new SynthLookAndFeel();
try {
Class aClass = MainClass.class;
InputStream is = aClass.getResourceAsStream("config.xml");
if (is == null) {
System.err.println("Unable to find theme configuration");
System.exit(-1);
}
synth.load(is, aClass);
} catch (ParseException e) {
System.err.println("Unable to load theme configuration");
System.exit(-2);
}
try {
UIManager.setLookAndFeel(synth);
} catch (javax.swing.UnsupportedLookAndFeelException e) {
System.err.println("Unable to change look and feel");
System.exit(-3);
}
JFrame frame = new JFrame("Synth Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("Hello, Synth");
frame.add(button, BorderLayout.CENTER);
JTextField textField = new JTextField();
frame.add(textField, BorderLayout.SOUTH);
frame.setSize(300, 200);
frame.setVisible(true);}
}
//File: config.xml
/*<synth>
<style id="button">
<font name="Monospaced" size="24" style="BOLD"/>
<state value="MOUSE_OVER">
<font name="SansSerif" size="48" style="ITALIC"/>
<opaque value="TRUE"/>
<color value="BLUE" type="BACKGROUND"/>
</state>
<state value="PRESSED">
<font name="Serif" size="36" style="BOLD AND ITALIC"/>
<opaque value="TRUE"/>
<color value="RED" type="BACKGROUND"/>
</state>
</style>
<bind style="button" type="region" key="Button"/>
<style id="textfield">
<opaque value="true"/>
<state>
<color value="#C2E2CF" type="BACKGROUND"/>
<color value="#000000" type="TEXT_FOREGROUND"/>
</state>
<imagePainter method="textFieldBorder" path="text.png"
sourceInsets="3 3 3 3" paintCenter="false"/>
<insets top="3" left="3" bottom="3" right="3"/>
</style>
<bind style="textfield" type="region" key="TextField"/>
</synth>
*/
SynthLookAndFeel: load(InputStream input, Class resourceBase)
import java.awt.BorderLayout;
import java.io.InputStream;
import java.text.ParseException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.UIManager;
import javax.swing.plaf.synth.SynthLookAndFeel;
public class MainClass {
public static void main(String args[]) {
SynthLookAndFeel synth = new SynthLookAndFeel();
try {
Class aClass = MainClass.class;
InputStream is = aClass.getResourceAsStream("config.xml");
if (is == null) {
System.err.println("Unable to find theme configuration");
System.exit(-1);
}
synth.load(is, aClass);
} catch (ParseException e) {
System.err.println("Unable to load theme configuration");
System.exit(-2);
}
try {
UIManager.setLookAndFeel(synth);
} catch (javax.swing.UnsupportedLookAndFeelException e) {
System.err.println("Unable to change look and feel");
System.exit(-3);
}
JFrame frame = new JFrame("Synth Sample");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton button = new JButton("Hello, Synth");
frame.add(button, BorderLayout.CENTER);
JTextField textField = new JTextField();
frame.add(textField, BorderLayout.SOUTH);
frame.setSize(300, 200);
frame.setVisible(true);}
}
//File: config.xml
/*<synth>
<style id="button">
<font name="Monospaced" size="24" style="BOLD"/>
<state value="MOUSE_OVER">
<font name="SansSerif" size="48" style="ITALIC"/>
<opaque value="TRUE"/>
<color value="BLUE" type="BACKGROUND"/>
</state>
<state value="PRESSED">
<font name="Serif" size="36" style="BOLD AND ITALIC"/>
<opaque value="TRUE"/>
<color value="RED" type="BACKGROUND"/>
</state>
</style>
<bind style="button" type="region" key="Button"/>
<style id="textfield">
<opaque value="true"/>
<state>
<color value="#C2E2CF" type="BACKGROUND"/>
<color value="#000000" type="TEXT_FOREGROUND"/>
</state>
<imagePainter method="textFieldBorder" path="text.png"
sourceInsets="3 3 3 3" paintCenter="false"/>
<insets top="3" left="3" bottom="3" right="3"/>
</style>
<bind style="textfield" type="region" key="TextField"/>
</synth>
*/