Synth的XML配置(1)
Synth的设置需要配置xml文件(如:demo.xml)来实现,因此xml的配置对synth界面的设置非常重要.
1、xml的所有内容都包含在<synth></synth>中,不需要xml版本和语言(即:<?xml version="1.0" encoding="UTF-8"?> 这行不需要)。
2、如果只用<synth></synth>标识,没有其他的配置,界面会出现很多空白(即:synth没有默认值,在xml中没有设置组件的配置,界面经常以空白的方式显示,没有默认的截面,因此在xml中没有组件都要配置)。
3、如果在<synth></synth>标识中没有JTable的配置,若界面中有JTable则出现异常不能正确显示。因此,xml中一定要配置JTable,因为不配置其他组件,Synth会以空白显示;但是不配置JTable,synth不会以空白显示,会出现异常。在xml配置JTable中一定要配置Table.gridColor属性和ENABLED状态,如:
<style id="Table"> <object id="Table_Grid_Color" class="java.awt.Color"> <int>133</int> <int>181</int> <int>237</int> <int>255</int> </object> <property key="Table.gridColor" type="idref" value="Table_Grid_Color" /> <state value="ENABLED"> <color type="TEXT_FOREGROUND" value="#000000" /> <color type="TEXT_BACKGROUND" value="#FFFFFF" /> <color type="BACKGROUND" value="#FFFFFF" /> </state> </style> <bind style="Table" type="region" key="Table" /> |
配置了这两个属性,显示JTable才不会出现异常。
Synth的XML配置(2)
1、style元素,是设置XML中设置属性的主要标签,设置好后要把属性绑定到某个组件上(或某个范围上)。
bind元素,是主要用于把style绑定到组件上的。
例如:
<style id="b"> <font name="DIALOG" size="12" style="BOLD"/> </style> <bind style="b" type="region" key="button"/> |
style元素中的id属性是style的唯一标识,bind元素中的style对应要绑定的style的id标识;type属性是绑定的类型(范围),我了解的有2个可选值:region和name,若type属性值为region则bind元素中的key属性值为类javax.swing.plaf.synth.region。
java中已经设置定义的属性值,若type属性值为name ,则bind元素中的key属性值为组件在程序中设置的名称值(setName("key"))。
例1:
<style id="b"> <font name="DIALOG" size="12" style="BOLD"/> </style> <bind style="b" type="region" key="button"/> |
bind元素的type属性值为region:
bind元素的key属性值"button"可以在类javax.swing.plaf.synth.region.java中找到Region BUTTON = new Region("Button","ButtonUI"),其new Region("Button","ButtonUI")中的button可以作为bing元素的key属性的值。
例2:
<style id="a"> <font name="DIALOG" size="12" style="ITALIC"/> <insets top="1" bottom="2" left="3"/> <state value="ENABLED"> <object id="customPainter" class="CustomPainter"/> <painter idref="customPainter"/> </state> </style> <bind style="a" type="name" key="test.*"/> |
bind元素的type属性值为name:
bind元素的key属性值"test.*"表示"a"的style元素配置的属性应用于在程序中设置名称以”test.“开头的组件(如: JButton bt1 = new JButton();bt1.setName("test.bt1"); //bt1设置了名称为""test.bt1""是以"test."开头,因此bt1可以应用"a"的style元素配置的属性)
2、style下可以有
property | defaultsProperty | state | font | painter | imagePainter | backgroundImage | opaque | (%beansPersistance;) | imageIcon等其他的元素标签。