首页 > 范文大全 > 正文

基于XML的界面感观设计

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于XML的界面感观设计范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

[摘要] 一个应用软件良好的可用性取决于软件的外观和行为,即观感。而用java的传统方法去设计一个观感不仅技术复杂,而且外观不友好。利用XML语言,在java的synth类的基础上去设计一个观感,则不仅可以使任务大大简化,而且界面美观。在jdk1.5以上的平台上进行测试,结果运行良好。

[关键词] XML 观感 synth类

一、引言

一个应用软件的良好的可用性取决于软件的外观和行为,即观感。一致的观感不仅有助于用户快速的和高效的掌握应用软件的使用,而且有助于用户触类旁通。

一个具有良好界面感观设计的应用软件应体现在以下几个方面:

1.逻辑组织。软件的感观设计应与用户欲完成的任务在逻辑上一致。

2.可伸缩性。窗口应是可伸缩的,以便用户在窗口中能够找到所需的内容。

3.可预见性。使用户依据经验即可预见组件的功能。

4.响应性。组件的响应应迅速快捷,在用户的容忍范围之内。

若要达到上述目标,在Java中,使用Swing UI进行代码编写和文档编制是十分困难的,常常是乱杂一气,缺乏规划。为了创建良好感观,开发人员需要继承Metal感观观的39个类,或者继承Basic感观的60个类。本文在讨论XML和Java技术的基础上,提出了一种界面感观方案设计,可使开发人员的任务的复杂程度大大降低。

二、传统的Java界面感观设计

在Java中,Swing程序在缺省情况下使用Metal观感,可以采用两种方式来设计观感。第一种方式是在Java安装的子目录jre/lib下有一个文件swing.properties。在这个文件中,将属性swing.defaultlaf设置为所希望的观感类名。例如,

Swing.defaultlaf=com.sun..java.swing.plaf.motif.MotifLookAndFeel

第二种方式需要调用静态的UIManager.setLookAndFeel方法,并提供所想要的观感类名,然后再调用静态方法SwingUtilities.updateComponentTreeUI来刷新全部的组件集。这里需要向这个方法提供一个组件,并由此找到其他的所有组件。例如,

String plaf = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";

try{

UIManager.setLookAndFeel(plaf);

SwingUtilities.updateComponentTreeUI(panel);

}catch(Exception e) { e.printStackTrace(); }

在Java中,默认提供了Metal观感、Motif观感和Windows观感三种。这三种形式风格比较单一,缺乏个性化,设计不灵活。下面采取一种新的方法来设计界面感观。

三、基于xml界面感观设计

1.XML基础

在Java中,可以把对外观的所有描述从代码中分离出来,将其放入外部的XML文件和图像文件中,让开发人员不必编写任何代码就可以创建新的外观。从而减轻开发人员的负担,提高工作效率。

应用XML文件创建感观的步骤如下:

(1)应用标签创建组件风格。关于Java XML文件,它的主要组成部分是标签。 标签包含描述一个组件的风格的所有信息,例如颜色、字体、图像文件、状态,以及一些组件的特殊属性。例如,

// describe colors, fonts, and states

(2)应用标签将组件风格与组件关联。例如,

要注意的是: 标签中的 key 属性映射到 javax.swing.plaf.synth.Region 类中的常量。

2.XML文件加载

在Java中,XML文件的加载需要使用synth引擎,即javax.swing.plaf.synth类。Synth 是一个白板外观,是一块完全空白的画布,表现为一个完全空白的面板,只有在 XML 文件中定义了组件风格时,它才会显示组件。XML文件加载的方式如下,

(1)为感观的定义提供基础。

SynthLookAndFeel synth = new SynthLookAndFeel();

(2)加载XML文件。

synth.load(Demo.class.getResourceAsStream("demo.xml"), Demo.class);

(3)应用新的感观。

UIManager.setLookAndFeel(synth);

3.XML文件举例

(1)设置字体和颜色。①设置颜色。color标签本身需要value和type两个属性。

value可以是 java.awt.Color 包中的任何常量。可以采用字符串的形式表示,例如 RED、BLUE;也可以采用颜色的十六进制表示,例如 #669966。

type描述文件设置哪个区域的颜色,其值有 BACKGROUND、FOREGROUND、TEXT_FOREGROUND、TEXT_BACKGROUND 和 FOCUS。

②设置字体。font 标签有两个基本属性和一个可选属性。这三个属性直接映射到 java.awt.Font 类中的三个参数,name,size和style。

Name是字体的名称,其值是用户计算机上所安装的字体库,例如,Verdana、Arial等。

size 是字体大小,以像素为单位。

Style它的值为 BOLD ,ITALIC和BOLD ITALIC。

(2)应用图像。可以使用图像来创建诸如文本域、按钮等控件的边框。图像被9个区,它们分别是顶部、右上、右部、右下、底部、左下、左部、左上和中间,如图所示。

图 图像分区

在这些分区中,左部和右部可以上下拉伸,顶部和底部可以左右拉伸,其余部分固定不变。在XML文件中由imagePainter 标签来设定。它有以下几个属性。

path 属性提供所使用的图像的路径。

sourceInsets 属性按像素计算依次映射到顶部的高度、左部的宽度、底部的高度和右部的宽度。

method 属性直接映射到 javax.swing.plaf.synth.SynthPainter 类中的一个函数。每个函数映射到一个 Swing 组件中某个特定的绘画任务。

paintCenter属性允许保留或者舍弃图像的中间区域。

(3)XML文件举例。应用以上信息来设计一个文本域(textfield)的感观设计,代码如下。

sourceInsets=”5 7 5 7” paintCenter=”false”/>

四、结束语

本文讨论了在XML文件的基础上,利用Java技术进行界面感观设计。应用XML可以将界面感观设计从编写大量的Java代码的工作中分离出来。从而,减轻技术开发人员的负担,提高工作效率。此外,使用这种方法可以使技术开发人员不必具有较高的艺术才能和绘图本领。

以上程序是在jdk5.0以上平台测试完成的,并取得了较好的感观效果。本文只对标签和文本域等组件进行了设计,下一步研究的重点是对一些复杂的组件进行设计。

参考文献:

[1]Sun Microsystems,Java Look and Feel Design Guidelines: Advanced Topics[M].addison Wesley,2001

[2] Cay S. Horstman,Core Java 2 Volume I Fundamentals: 8th Edition[M],2007,334~335

[3]Java documents, Modifying the Look and Feel[OL].

[4 ]Michael Abernethy, Advanced Synth[OL].

[6] Scott Violet, The Synth Look and Feel[OL].