• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

HTML、Swing还是XML,Java客户端工具选择?(二) [转]

发布: 2007-7-01 18:47 | 作者: admin | 来源: | 查看: 23次 | 进入软件测试论坛讨论

领测软件测试网  基于Swing的GUI客户端

  今天还有多少人在使用Java Applet作为客户端?也许使用基于HTML的UI更安全,但这是最好的选择吗?

  AT&T的一个业务部门Telecorp PCS曾经开发过一个应用程序,使其商店可以收集希望购买移动电话的用户的资料,检查其信用卡,然后立即开通移动电话,除了确认用户输入的信息外,应用还必须通过使用排序、选择和其他的标准数据库功能处理提交的报告。此外,当一个新的移动电话开通后,这个应用程序还需要显示一个通知。

  你能相像用HTML来完成这一切吗?也许可能,但它将非常讨厌,而且速度很慢,需要不间断地使用网络连接。Telecorp PCS决定冒险在交互的Applet中使用Java,那么结果如何呢?完全成功,这一应用程序在开发时采用了Swing,并布署在采用了Java插件的互联网网站上。通过使用Swing UI类,很简单地完成了应用所要求的功能。

  我相信许多开发人员在早期使用Java时,都使用过applet,并且在解决各种浏览器之间的不兼容性、applet下载时间、性能方面花费过大量的时间。对客户端Java最大的批评来自其对象性,但现在情况已经有了很大的改观。Sun已经花费了大量的时间来改进其代码的质量,下面我将向你说明为什么基于Swing的UI是值得一试的。

  Swing及其布署模式

  我无需对Swing的内部架构以及类和界面的设计、设计模板的实现方面有多少新思想多作叙述了。Swing几乎是我见过的最彻底的窗体系统,它的容器、组件和UI元素之间的关系非常清晰。Swing的架构是基于Model-View-Controller(MVC)设计模板的,其数据与数据的表达和处理相互独立。

  大多数的Swing模型都是由各种UI元素共享的。例如,JTable使用和JList、JTree相同的模型集,这就使得学习和使用Swing非常简单,而且Command、Observable和Listener等模板提供了很好的灵活性和良好的面向对象特性。也许Swing架构中唯一的不足之处是所有的事件都被交付到相同的EventDispatch线程中,使整个GUI客户端应用程序只有一个线程。但我们可以通过使用不同的线程响应用户的命令而不通过EventDispatch线程来完成所有操作,就可以很简单地克服Swing这一缺点。

  Sun发布的每个JDK版本都对Java和Swing的性能都进行了改进。JDK 1.3中与Swing相关的改进表现在性能、内存消耗和一个输入确认框架。性能和内存消耗方面的改进相当可观。我们公司将客户端的应用程序由JDK 1.2.2升级到1.3后,内存消耗降低了30%,一些应用程序内存占用减少得更多。由于Swing内部的初始化过程被优化了,我们的客户端应用程序的运行速度和响应速度都更快了。简而言之,对速度影响最大的是加载其他界面组件时自动产生的大量的类,而这一方案中只包含有一个类。另一个重大的变化是缺省的JVM是HotSpot Client VM,它专门针对GUI绘制和客户端应用程序执行进行了优化,可以通过在命令行方式下运行java命令得到缺省的JVM。
  
  输入确认框可以使我们很方便地通过编程实现命令字段或输入确认。在这以前,如果要在处理下一个字段之前,对前一个用户输入进行处理,必须在该部件上添加一个监听程序,每当该部件不再是焦点后都需要对它进行确认,这种方式非常单调和乏味。使用新的InputVerifier类,可以通过创建InputVerifier子类的一个实例,并将它赋予需要确认的JComponent,就能达到相同的目的。在焦点转换之前,部件将自动地调用verify()方法。

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网