快速业务通道

创建一种声明性XML UI语言 - 用Java语言构建一个UI和配套框架 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-20

创建一种声明性XML UI语言 - 用Java语言构建一个UI和配套框架

时间:2011-01-28 IBM Arron Ferguson

用编程代码编写 GUI 常常导致混乱的设计,这反过来导致业务逻辑和 UI 代码之间的混淆。本文探讨如何创建带有配套 Java™ 框架的声明性 XML UI 标记集合,以便在运行时解析、构造并最终将已声明的GUI 组件绑定到业务逻辑。

简介

GUI 开发可能是令人畏惧的任务。GUI 框架并不是总是拥有良好的文档,需要的代码量可能迅速增长,拖慢开发工作流。特别是支持这些 GUI 框架的拖放工具和 IDE 通常诱使 GUI 软件开发人员创建难以管理和阅读的代码。这可能会进一步混淆业务逻辑和 GUI 描述代码之间的界限,从而使软件维护更加困难。

常用缩略词

API:应用程序编程接口

DOM:文档对象模型

GUI:图形用户界面

HTML:超文本标记语言

IDE:集成开发环境

JAR:Java 压缩文档

UI:用户界面

URI:统一资源标识符

XML:可扩展标记语言

XSD:XML 模式信息集模型

W3C:万维网联盟

这就是声明性 UI 语言之所以方便的原因。UI 语言描述 “是什么”,而不是 “该如何”。例如, HTML 描述显示的内容,而不是描述用于呈现内容的呈现函数。声明性语言并不指定 “该如何”,从而省略了控制流。尽管这种省略听起来好像一种限制,但它实际上是一种优点,因为控制流的副作用 — 如修改全局状态(比如变量)或调用其它函数或方法 — 被消除了。选择声明性语言还有利于将 UI 代码和应用程序代码分隔开来。这种分离将来还能提供一些好处,比如明确区分项目和团队角色,这甚至有可能降低业务逻辑和多个视图或视图技术之间的集成成本。

目前正在使用的声明性 XML UI 的例子不在少数。使用 GNOME 桌面环境的Linux® 和 UNIX® 操作系统有 Glade。Microsoft® Windows® 用户拥有 Extensible Application Markup Language (XAML),该语言支持丰富的功能,包括在 XML 中插入代码。Adobe® Flex® Framework 的MXML 格式为 Adobe Shockwave (SWF) 播放器描述 GUI 并包含代码插入。参阅 参考资料 中的链接了解更多信息。

Java 技术中的基本声明性 UI 框架的必要组件可能包括:

验证:使用 XML Schema

一个 DOM:处理具体事宜的自定义 DOM,比如同步 GUI 组件状态和 XML 节点状态

持久性: GUI 的编组(marshalling)和解组(unmarshalling)

图像数据:存储为 Base64 数据

Swing 组件:GUI 开发常用的Swing 组件的表示

下面可以创建声明性 XML 了,创建过程中要谨记上述必要组件。

创建一种声明性XML UI语言 - 用Java语言构建一个UI和配套框架(2)

时间:2011-01-28 IBM Arron Ferguson

声明性 XML

第一个 XML 格式示例(见 清单 1)展示了一个简单的窗口、一个面板和一个按钮。清单 1 包含基本的必要属性,比如坐标、大小和引用单独内存组件的惟一标识符。

清单 1. 声明性 XML 概念

<?xml version="1.0" encoding="UTF-8"?> <xui:XUI>  <xui:Window id="window_0" name="Hello World" width="300" height="300" x="426"   y="282" visible="true">   <xui:GridLayout height="1" width="1"></xui:GridLayout>   <xui:Panel id="panel_0" x="0" y="0" name="Hello Panel"    width="1" height="1">    <xui:GridLayout height="1" width="1"></xui:GridLayout>     <xui:Butt

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