Java by API/javax.swing.plaf.synth/SynthLookAndFeel

Материал из Java эксперт
Перейти к: навигация, поиск

new SynthLookAndFeel()

   <source lang="java">

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>

  • /
      </source>
   
  
 
  



SynthLookAndFeel: load(InputStream input, Class resourceBase)

   <source lang="java">

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>

  • /
      </source>