透视Synth与Swing的外观

开发 后端
本文介绍Synth外观于Swing外观,阅读本文之后,您应该可以在短时间内创建具有专业外观的 UI。

本文将深入透视 Synth外观,它是 Java 5.0 中为 Swing 引入的***内容。通过为 Java UI 编程引入“皮肤”的概念,Synth 使开发人员可以为应用程序创建和部署定制的外观。软件工程师 Michael Abernethy 将带您从头开始逐步构建一个具有 Synth外观的应用程序,让您充分了解 Synth 的概念。阅读本文之后,您应该可以在短时间内创建具有专业外观的 UI。

就在 Sun 一如既往地试图“再次引入 Java Desktop”之际,Java UI 开发人员的抱怨之词亦已表面化:要创建完全定制的外观实在太难。这样做不仅要花费太多的时间,并且 Swing UI 代码的编写和文档的编制也极为不堪,常常是乱杂一气,缺乏规划。为了创建完整的外观,开发人员需要继承 Metal 外观的 39 个类,或者继承 Basic 外观的 60 个类。谁想通过重写整个包来改变应用程序呈现外观的方式呢?用 Swing 创建定制外观有多难,通过下面的事实同样可窥见一斑:在很多开发人员为开源项目添砖加瓦的时代,Internet 上可用的自定义 Swing外观几乎是凤毛麟角 —— 总共大约是 20 个,其中少数在 SourceForge.net 上(请参阅参考资料)。

美丽只是肤浅的东西,进入 Synth,Sun 希望它能使应用程序外观的个性化过程变得容易。Synth 的目标很简单 —— 让开发人员不必编写任何代码就可以创建新的外观。这似乎是个不错的解决方案。程序员一般没有突出的艺术才华,而图形设计人员通常也不是 Java 编程专家。Synth 把对外观的所有描述从代码中分离出来,而将其放入外部的 XML 文件和图像文件中,为上述问题提供了大快人心的解决之道。这种完全在外部文件中描述的外观被称作皮肤(skin)。

Sun 的皮肤概念并不是什么创新。例如,Winamp 有数百种皮肤,Firefox 也有几十种皮肤,这些皮肤很容易创建,只需更改一个 XML 文件即可。想像一下,仅仅修改一个 XML 文件,就能快速、容易地为 Java 应用程序创建一个外观。再想想这样一来的结果 —— 几百个互不相同的 Swing外观。Java UI 开发人员当然有理由欢呼了。

本文将深入分析 Synth外观,向您展示创建一个完整的外观或皮肤所需知道的一切。您会看到一个带有示例皮肤的应用程序,这个应用程序使用了 Synth 所有重要的概念。然后,我会逐步剖析这个皮肤,在构建 XML 文件的过程中,一一教会您 Synth 的各个概念。

本文***一节将尽力回答开发人员关于 Synth 性能、bug 和缺陷以及 Synth 在省时方面的表现等种种问题。阅读本文之后,您应该会愿意拥护 Synth 作为外观解决方案,并准备马上使用它来创建自己的 Swing外观。

【编辑推荐】

  1. 介绍Swing技术的应用
  2. 实现Swing ActionListener接口
  3. 浅析Accelerator key in Java Swing
  4. Swing控件的工作方式
  5. 全面介绍Swing容器
责任编辑:佚名 来源: 中国IT实验室
相关推荐

2009-07-15 10:37:28

Swing外观

2009-07-10 12:30:12

Swing组件

2012-05-31 14:11:49

SwingSubstance异常

2012-01-17 17:08:05

JavaSwing

2009-07-14 14:03:56

Swing程序

2012-01-11 09:39:50

Java

2022-02-23 23:33:14

CSS

2009-07-14 15:34:22

Swing中的线程GUI程序

2009-07-17 14:57:41

SwingWorkerSwing程序

2009-07-14 16:30:41

Swing与SWT

2011-05-07 15:09:41

索尼笔记本

2009-07-10 13:09:53

.Net与Java S

2009-07-16 11:19:48

外部线程Swing组件

2009-07-15 15:35:59

Swing程序Swing性能

2009-07-14 14:00:47

iData技术

2009-07-10 16:14:29

MVC设计模式Swing

2013-05-10 16:42:26

2011-04-15 17:33:39

SWINGAWT

2009-07-14 11:08:42

WebRendererSwing应用程序

2011-07-08 13:40:18

点赞
收藏

51CTO技术栈公众号