快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
个新的、可以运行的外观。

考虑到 KISS 指令,我将首先介绍 Synth XML 文件的主要构件 —— <style> 标签。<style> 标签包含描述一个组件的式样的所有信息 ,例如颜色、字体、图像文件、状态,以及一些特定于组件的属性。虽然一个 <style> 标签可以描述多个组件,但构建 Synth 文件的最简便方法是为 每 个 Swing 组件创建一个式样。

创建好式样之后,便可以将式样链接到一个组件。<bind> 标签通知 Synth 引擎将一个已定义的式样链接到一个组件,如清单 2 所示。这样的组合 便 完全创建了组件的新外观。

清单 2. 将一种式样链接到一个组件

<style id="textfield">   // describe colors, fonts, and states </style> <bind style="textfield" type="region" key="Textfield"/> <style id="button">   // describe colors, fonts, and states </style> <bind style="button" type="region" key="Button"/>

关于 <bind> 标签,要注意的一点是:<bind> 标签中的 key 属 性映射到 javax.swing.plaf.synth.Region 类中的常量。Synth 引擎使用这些 常 量将式样与一个实际的 Swing 组件链接。简单的组件,例如 JButton 和 JTextField,使用一个常量。有些更复杂的组件,例如 JScrollBar 和 JTabbedPane,则有多个常量,用于不同的部分。

我建议您在更熟悉 Synth 格式并且能够设置 XML 中的继承模型之前,使用 每 个组件一种式样(one-style-per-component)的设置。这种结构虽然没有利用 所 有 XML 的分层结构功能,但它是最容易设置、编写代码和调试的。

在处理 Synth XML 文件时,还有一点很重要,并不是任何形式都是合法的。 如果有输入错误,或者在 XML 中使用了不正确的属性,这些错误只有当外观装 载 期间抛出一个运行时异常时才能发现。解决方法:在将 XML 文件发布给客户之 前 ,对其进行测试。

Demo 应用程序

我将带您构建一个简单的登录屏幕,用它作为例子应用程序,向您展示 Synth XML 文件的工作原理。该屏幕提供了足够多的组件,通过这些组件,可以看到 XML 文件的所有重要部分,如果使这些部分结合起来便可以创建一个完整的外观 。

通过比较图 1 和图 2,具有 Ocean 外观的登录屏幕看上去与您预期的一样 —— 简单,直接,也令人厌烦。具有 Synth 外观的登录屏幕则完全不同。

图 1. 具有 Ocean 外观的 Demo 应用程序

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

图 2. 具有 Synth 外观的 Demo 应用程序

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

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

时间:2011-09-07 ibm Michael Abernethy

更改颜色和字体

为 demo 应用程序创建外观的第一步是设置默认颜色和字体。您将把 white Aharoni 字体作为每个组件的默认字体,如果没有特殊设置组件的话,就使用这 种字体。

您可以将更改字体的 XML 放在 <style> 标签内的任何地方。还可以 将 颜色嵌入到一个 <state> 标签中。在本文的后面部分,我将更详细地讨 论 <state> 标签,但现在只需知道,一个简单的、不带属性的 <state> </state> 标签可以包含任何状态,这个标签正是您在这 里 所需要的。

color 标签本身需要两个属性:

value 可以是 java.awt.Color 常量的任何 String 表示(例如 RED、BLUE ) ,或者,它可以是一种颜色的十六进制表示,前面加上 "#" (例如 #669966) 。

type 描述文件应该设置哪个区域的颜色。选择有 BACKGROUND、FOREGROUND 、 TEXT_FOREGROUND、TEXT_BACKGROUND 和 FOCUS。

font 标签有两个必需的属性和一个可选属性。这三个属性直接映射

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号