快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
{ Color start = UIManager.getColor ("Panel.startBackground"); Color end = UIManager.getColor("Panel.endBackground"); Graphics2D g2 = (Graphics2D)g; GradientPaint grPaint = new GradientPaint( (float)x, (float)y, start, (float)w, (float)h, end); g2.setPaint(grPaint); g2.fillRect(x, y, w, h); g2.setPaint(null); g2.setColor(new Color(255, 255, 255, 120)); g2.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); CubicCurve2D.Double arc2d = new CubicCurve2D.Double( 0, h/4, w/3, h/10, 66 * w, 1.5 * h, w, h/8); g2.draw(arc2d); g2.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_OFF); } }

更高级的设置

本节包含两个超出登录屏幕例子范围的技术。在创建您自己的 Synth 外观时 ,您可能发现这两项技术很有用。

绘制非 Swing 组件

可以改变每个 Swing 组件的外观这一点虽然很棒,但是还应该能够改变其他 组件 —— 开发人员创建的用于填补 Swing 空缺的组件 —— 的外观。在这种 情况下,<bind>标签需要作出改变,以反映正在绘制的不是一个 Swing 组件。type属性可以有两种值:如果映射到一个 Swing 组件,则该值为 region ,如果映射到非 Swing 组件,则该值为 name。因此,如果将 <bind>标 签变为 <bind style="mystyle" type="name" key="Custom.*"/>,则会改变每个类名以 Custom开始的组件(例 如,CustomTextField或 CustomLabel),使它们使用 mystyle式样。

式样的分层结构

除了在创建 XML 文件时使用 KISS 式样之外,还可以构建分层次的一些式样 ,并将这些式样应用于组件中。清单 9 应该可以清楚地演示这一点。注意, Synth 使用最后定义的属性来显示组件。

清单 9. 分层结构的例子

<style id="base"> <color value="BLACK" type="BACKGROUND"/> <state> <font size="14"/> </state> </style> <bind style="base" type="region" key=".*"/> <style id="sublevel" clone="base"> <color value="RED" type="BACKGROUND"/> </style> <bind style="sublevel" type="region" key="Label"/>

清单 9 中的代码使每个组件有一个黑色的背景,字体大小为 14,但 label 组件除外,label 组件拥有红色的背景。通过克隆 sublevel中的 base式样,清 单 9 复制了整个式样。然后,您可以覆盖所需的任何特定属性。

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

时间:2011-09-07 ibm Michael Abernethy

检验 Synth 的性能、可靠性和效率

至此,您已经看到如何创建用于 Synth 的 XML 文件,以及如何通过更改字 体、更改颜色和添加图像来创建定制的外观,但对于 Synth 可能还有些疑问。 如果您使用 Swing 已经有一段时间,那么我可以肯定,您首先想到的是性能问 题。我设计了一些性能测试,这些测试表明,Synth 不会令您的 UI 慢如蜗牛。 为了调查您可能看到的问题(并讨论我在使用 Synth 时已经碰到过的一些问题 ),我查看了 Java Bug Parade (请参阅 参考资料)。最后,我将回答最重要 的问题 —— Synth 真的可以节省您的时间吗?

装载那么多图像会不会使 Synth 变得更慢?

为了回答这个问题,我创建了两个测试,并让您更深切地体会 Synth 在性能 方面与其他外观的比较。第

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