快速业务通道

高级Synth:有了最新的Swing外观,定制UI不在话下 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
t;/state> <state value="MOUSE_OVER"> <imagePainter method="buttonBackground" path="images/button_on.png" sourceInsets="9 10 9 12" paintCenter="true" stretch="true"/> <insets top="9" left="10" bottom="9" right="12"/> <color type="TEXT_FOREGROUND" value="#FFFFFF"/> </state> <state value="PRESSED"> <imagePainter method="buttonBackground" path="images/button_press.png" sourceInsets="10 12 8 9" paintCenter="true" stretch="true"/> <insets top="10" left="12" bottom="8" right="9"/> <color type="TEXT_FOREGROUND" value="#FFFFFF"/> </state> <property key="Button.margin" type="insets" value="0 0 0 0"/> </style> <bind style="button" type="region" key="Button"/>

处理 标签的一个重要方面是知道哪些组件有哪些状态。显然,在这 个例子中,按钮可以拥有默认状态、鼠标悬停(mouse-over)状态和被按下 (pressed) 状态。对于这个例子,还可以定义一个聚焦(focused)和禁用 (disabled)状态。但是对于一个面板,选中(selected)状态根本不适用,当 鼠标处于面板之上时如果改变面板的状态,那么只能招来抱怨。

处理特定于组件的属性

定义对每种组件都通用的 XML 属性时,总是忽略了一些特定于组件的属性。 例如 list 的行高、单选钮的图标和菜单的箭头图标,这些都是特定于组件的属 性。可以定义的特定于组件的属性有 100 多种,但是为每个这样的属性定义一 个 XML 属性就有些过分了。因此,Synth XML 文件允许设置特定于组件的属性 。<property>标签就像一个 Hashtable,它定义一个键 / 值对来设置属 性。

登录屏幕示例的复选框演示了如何为特定于组件的属性编写代码。通过定义 imageIcon,可以设置默认状态和选中状态下的 CheckBox.icon。这就像是翻遍 100 个属性找到您想要的属性那样简单。

清单 6 展示了为登录屏幕中特定于组件的属性编写代码的 XML。注意要首先 定义 imageIcon。然后,通过使用图像图标的 ID,可以为复选框的每种状态设 置一个图标。

清单 6. 定义特定于组件的属性

<style id="checkbox"> <imageIcon id="check_off" path="images/checkbox_off.png"/> <imageIcon id="check_on" path="images/checkbox_on.png"/> <property key="CheckBox.icon" value="check_off"/> <state value="SELECTED"> <property key="CheckBox.icon" value="check_on"/> </state> </style> <bind style="checkbox" type="region" key="Checkbox"/>

高级Synth:有了最新的Swing外观,定制UI不在话下(7)

时间:2011-09-07 ibm Michael Abernethy

使用定制 painter

定义 图 2中登录屏幕例子的最后工作是用曲线绘制渐变背景。用 XML 来实 现这种背景似乎有些别扭,坦白地说,真是这样。但这样我便有机会展示 Synth ,不限制您在 UI 设计中只使用图像和简单的颜色。您可以使用它来画任何东西 。

Synth 允许重写其 paint 方法(即在 javax.swing.plaf.synth.Synt

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号