扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:中国IT实验室 来源:中国IT实验室 2007年9月24日
关键字:
在本页阅读全文(共2页)
3. SWT/JFace――众里寻她千百度
就在Java在中间件市场(J2EE)以及web应用(JSP/Sevlet)上大放异彩的时候,AWT的穷途末路、Swing的饱受病诟,这一切似乎让Java的GUI开发沉寂的像一潭死水。
寻寻觅觅,冷冷清清,凄凄惨惨戚戚啊!
SWT/JFace象一股清新的风吹入了Java的GUI开发领域,为这个沉闷的领域带来了勃勃生机。虽然SUN不接纳SWT/JFace作为Java中的一种图形API标准,但它虽然借着Eclipse的优异表现,以不可阻挡之势向前发展着。终于可以用SWT/JFace轻松的开发出高效率的GUI程序,且拥有标准的Windows外观,Eclipse软件就是基于SWT/JFace构建的,大家看看Eclipse3.2就知道SWT有多么的棒。
图1:SWT/JFace的代表作――Eclipse界面
在此有必要解释一下SWT与JFace的区别,JFace其实是在SWT的基础上,采用MVC模式进行了封装而形成的一个新的类库,这一封装,大大简化了采用SWT开发Java图形用户界面的难度。在SWT推出后不久,出现了一个名为SWT Designer的Eclipse插件,使用该插件可以像采用Visual Studio .NET开发Window图形用户界面一样简单,可以采用可视化拖拽的方式进行。不要以为这是一个很小的进步,要知道用Java写GUI程序能够简单到这种程度,这在以前可是想都不敢想的事情。.NET平台之所以成功,很大程度上与它的IDE――Visual Studio .NET,优异的表现有关,而Visual Studio .NET最值得称道的就是它的可视化设计模式。
SWT/JFace直接调用了操作系统的图形库,从而使得Java应用程序的Look & Feel 与操作系统的习惯完全一致;更为重要的是,SWT/JFace采用有限调用本地方法(控件),只有当本地找不到所需要的控件时,才进行模拟。对本地方法的直接调用大幅度的提高了基于SWT/JFace的Java应用程序的运行速度。相信使用过JBuilder和Eclipse的开发人员会有切身的体会。一般来说,基于Swing的JBuilder需运行在1G以上内存的机器上,而Eclipse则可以在512M内存的机器上跑的很欢。SWT/JFace具有比AWT更为丰富的控件,比Swing更为快捷的速度。
任何事务都不可能十全十美,SWT/JFace也不例外。SWT/JFace的缺点主要在于两点:(1) 不是Java语言标准;(2) 某些平台并不支持。
4. 总结――长江后浪推前浪
滚滚长江东逝水,Java GUI开发三剑客,先后登上了历史的舞台。AWT作为Java第一个GUI类库,实现Java GUI开发从无到有的突破,尽管后来表现不佳,目前已经基本退出历史的舞台,但是其历史功绩是不容被抹杀的;Swing系出名门,是Java标准的一部分,并且站在AWT的肩膀上进行了许多改进,但是其过于复杂,且效率低下,目前也是饱受病诟,并不被广大程序员所接受;SWT/JFace作为后起之秀,在效率上、易用性上以及美观上都进行了改进,可以说是这三剑客中表现最为优秀的。最为难能可贵的是,SWT/JFace并不是Java标准的一部分,却能被广大程序员所接受,足见其优秀。
Java GUI开发作为Java技术系列中最为薄弱的环节,距离Windows平台的.NET GUI开发还是有很大的差距。但是相信在类似Java GUI开发三剑客这样的新技术的推动下,总有一天,Java GUI开发还是可以接近或者达到Windows平台的.NET GUI开发的水平。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者