posts - 495,  comments - 11,  trackbacks - 0
SWT

       SWT-"Standard Widget Toolkit",它是一个Java平台下开放源码的Native GUI组件库,也是Eclipse平台的UI组件之一。从功能上来说,SWT与AWT/SWING是基本等价的。SWT以方便有效的方式提供了便携式的(即Write Once,Run Away)带有本地操作系统观感的UI组件。
       由于widget系统的固有复杂性以及平台之间微妙的差异,即使在理想情况下,能够达到工业标准的跨平台的widget类库也是很难编写和维护的。最早的AWT组件现在被认为是样貌丑陋的,而且存在很多问题;SWING组件虽然也是缺点多多,但是随着JDK版本的不断升高,它仍在不断进行着改进。我认为,SWT在功能上与AWT/SWING不相伯仲,但是组件更为丰富,平台表现稳定,BUG也相对较少。如果你的应用程序真的需要在多个平台上运行,需要更为美观的界面,又不那么依赖于其他基于AWT/SWING的图形库,那么SWT或许是一个比AWT/SWING更好的选择。

=========================================

为什么要使用SWT?

  SWT是一个IBM开发的跨平台GUI开发工具包。至于IBM费劲自己另起炉灶开发一个GUI工具包,而不是使用Sun有的由AWT, Swing, Java 2D, Java 3D等构成的Java GUI框架,那就话长了。(得在一个BBS读过一个SWT起源的的帖子)。

  在SWT之前,Sun提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit)AWT框架也使用的是原生窗口部件(native widgets),但是它一直未能突破LCD问题LCD问题导致了一些主要平台特征的失。如果你不明白的(其我也没明白),话说,如果平台A有窗口部件(widgets1–40,而平台B有窗口部件(widgets20–25,那跨平台的AWT框架只能提供两个窗口部件集的交集。

  解决问题Sun建了一个新的框架。个框架不再使用原生窗口部件,而是使用仿真窗口部件(emulated widgets)。个方法然解决了LCD问题,并且提供了丰富的窗口部件集,但是它也来了新的问题。例如,Swing用程序的界面外不再和原生用程序的外相似。 然在JVMSwing用程序已得到了最大程度的性能改善,但是它们还是存在着其原生对应物所不具有的性能问题。并且,Swing用程序消耗太多的内存,这样Swing不适于一些小设备,如PDA和移动电话等。

  IBM行了尝试底解决AWTSwing框架来的上述问题。最IBM建了一个新的GUI就是SWTSWT框架通JNI访问原生窗口部件。如果在宿主(host)平台上无法找到一个窗口部件,SWT就会自地模它。

=====================================

Tags:java,rcp,jface,swt,ibm,eclipse,ui,gui

posted on 2007-11-27 15:04 jadmin 阅读(81) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: