利用Java设计GUI桌面应用程序的一些重要技术

利用Java设计GUI桌面应用程序的一些重要技术

 作者:omygame 提交日期:2005-1-16 9:15:00 <script language="javascript" src="http://hot.tianyaclub.com/hot.js" type="text/javascript"></script>
 关于在利用Java进行图形界面的桌面应用程序设计开发方面的讨论并不是很多,这当然是有原因的,毕竟Java的主要长处是在服务器端的开发,关于Java的利用,人们更多的是关注和使用Jsp,Servlet,EJB等方面的技术,而在桌面应用程序开发方面,更多的是在windows平台上应用,由于各种客观因素和习惯等原因,VC,VB,Delphi等更容易受到开发者的欢迎,使用Java应用在桌面应用程序开发上并不是很广泛。
由于Java跨平台应用的特性及其它一些原因,利用Java开发桌面应用程序依旧存在相当一部分的需求,事实上在某些情况下只要利用得当,Java在桌面应用开发上也会发挥出它的优越性,一些很优秀的开发工具比如Jbuilder,NetBeans,Eclipse等都是用Java开发而成的,Sars肆虐期间,曾见过一个国外某组织发布的一个号召大家利用自己电脑处理能力来联合破解sars病毒分子奥秘的软件,界面异常美观操作非常方便,竟是用Java开发。所以研究使用Java开发桌面应用程序还是有一定的价值的。
但事实上,有相当一部分初步的Java使用和爱好者对这个领域并不是很熟悉,由于项目需要等原因,很多朋友没有机会去研究和应用Java GUI应用程序,曾见过有朋友从事了一年多的Java开发工作而不知道可以用Java开发桌面应用程序。如果不细心研究这方面的开发,很容易把这方面的软件工程弄得难以维护,软件质量不高。以后我会努力留心这方面的技术开发,并且及时总结出经验和教训,便于日后项目需要时查阅,也可供交流和参考。
目前对于Java设计GUI桌面应用程序我整理了以下一些体会和思想,并非独创但在实际工作中很需要被重视:
1. 层次清晰的控制框架是必要的
很多软件上的优秀的设计思想都要引进到GUI程序开发中来,比如MVC模型,讲究将界面呈现和逻辑处理分离开来。在JDK的基础类库中某些包也引进来这种模型,但事实上整个程序的控制结构也需要引进这种思想。如果没有这种概念,就会导致类似这样的现象:在每个显示组件比如按钮的相关激发事件如鼠标单击事件中填写了大把的逻辑处理代码,不但组件开发者自己可能难以驾驭,而且给工程的维护上带来麻烦,在有些情况下甚至变得非常混乱,比如这个组件的状态改变会影响到软件窗口的另外一个组件的改变,这样处理起来就变得十分麻烦,实际上麻烦可能不止这些,两个组件的开发者不是同一个人,需要互相交流,甚至预计不到以后又会在哪个版块添加受此影响的组件!如果引进好的控制框架,部署相关的实现了控制器和数据处理接口的模块,由统一的控制器来处理及分发事件,而各个经过封装的显示组件均可实现了视图组件的相关接口,比如接受状态改变的方法receive(Event),当接受到某种事件后做出相应的变化。同时显示组件可以利用send(Event)方法将必要的自身状态变化信息交给控制器处理。这样的程序控制思想上类似于WEB开发中的Struts技术,只是有些区别并且没那么复杂,桌面应用程序有自身的一些特性,比如在这里控制器可以准确地将某个事件发送到指定的组件,因为处于同一个虚拟机,显示组件可以根据ID注册到控制器。
2. 数据驱动的版面布局和显示
桌面应用跟WEB应用相比较而言外观版面的控制上比较简单一点,这样也就更加便于通过配置文件来影响程序界面的布局风格等。这样使得软件的控制上变得灵活,因为配置文件比硬编码要灵活很多,至少无需编译,而且便于理解和维护。举个例子,如果我要开发一个IDE的开发环境,在界面的左边会显示工具属性栏,在工具的右边显示相关的表单,但是做好后别人看了却说更喜欢属性栏在右边,那边如果这个左右布局是由配置文件决定的,那么改动起来比较容易。同样,诸如菜单项的生成也可以根据配置文件来进行。另外相关的字体设置等也可以在配置文件中指定。
3. 统一的界面风格管理
尽量不要在各个组件中各自实现某个特殊的“花样”,这样不利于软件的维护。在进行WEB开发的时候我们用到样式表来定义界面风格,在Java界面编程里面也有对应的事物,那就是UIManager—界面管理器,通过界面管理器可以定制界面风格,在JDK1.5里面,可以通过配置xml文件来制定界面风格,这就又证明了数据驱动界面是一个很好的做法。
4. 尽量使用较新的界面设计开发包
传统的AWT有很大的局限性,所以在采用界面组件API方面,我想应该尽量利用新出现的优秀的作品,比如布局管理器,在jdk1.4之后就出现了更方便的布局管理器比如SpringLayout,另外市面还有很多其它的公司开发的用来进行界面开发的开发包非常有用,都可以有效引进来,增强开发能力。个人认为不用太担心是否标准API问题,因为并不是商业逻辑组件,对于桌面应用来说这并不重要。
5. 灵活区分前后台工作及引进线程技术
桌面应用软件中要进行各种处理工作,有些时候并不需要用户等待某个事件完成之后才能继续其它的操作,这样就可以新开单独的线程进行相关的处理,而用户可以在界面上继续操作。尽量不要造成用户需要继续操作而界面像是资源不足一样地不响应任何事件。
6. 简便灵活的应用交付
因为是桌面应用程序,在交付给用户使用时一定要有简便灵活性。我们不能指望每个应用程序都像部署服务器端的应用那样到客户现场去安装运行环境,安装数据库,设置环境变量等等,那样软件就会让用户生厌没有生命力了。首先必须有简单的安装程序,安装程序必须包含两个独立的部分,安装Java运行环境和安装应用程序本身,这样可以根据用户的机器上是否有Java运行环境来决定是否安装该环境。安装程序是一个方面,这个可以通过各种第三方软件制作。但是安装后的运行牵涉到很多问题,CLASSPATH及其它环境变量的设置,资源文件的加载,目标数据的定位等等,还有用户可能不是直接点击程序执行而是激发的快捷方式,这样也会引起相关的路径问题。个人认为用Jar压缩包的形式交付应用程序比较好,将各种必要的配置文件都打包到一起,同时方便java,javaw或者其它的exe文件调用执行,在进行文件关联的时候不会出现命令窗口,当然这个有其它相关方式解决,但是更重要的是可以把各种资源文件绑到一起,不用担心classpath等问题,这个方面可以参考ONE-JAR技术,是一个很好的解决方案,就是将应用程序和其它类的jar文件制作成为特定结构的Jar。另外,任何情况下都可以通过
System.getProperty(“system.class.path”)来得到唯一的应用程序所在的绝对路径确定资源位置。

暂时想到的有这么些要注意的,以后再进行补充和修正。另外我想再次说明的是,只要是项目适合,利用Java可以开发出非常美观使用的桌面应用程序来,而且不比其它工具差。  
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值