SWT全接触 - 编程入门网
SWT全接触时间:2011-11-09 IBM 薛笛Java 世界的人似乎一直都对 Java 的桌面应用程序十分不满,从 AWT 到 SWING,从默认的 Theme到 第三方的产品,不是太难看(AWT)就是在某些平台有 BUG(SWING,Quaqua--一个Windows平台下的仿Mac 的主题包),再不就是对中文支持不好(某些第三方 LookAndFeel)。于是,如果想要获得和本机平台一 致的用户界面和比较稳定的性能,SWT就成了一个不可忽视的选择。 当然,虽然这个专题名叫"全接触",但毕竟不可能面面俱到,在一篇文章中兼收并蓄SWT的全部内容也 不现实。但不管怎么说,我都将尽力展示SWT的使用细节,希望能为那些对SWT感兴趣的人提供一些帮助。 1.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更好的选择。 2.SWT起步 2.1 SWT的HelloWorld 一如介绍其他程序的起始,我们都需要来一个HelloWorld来帮助我们入门,SWT的HelloWorld如下:
SWT全接触(2)时间:2011-11-09 IBM 薛笛运行这个程序就会得到如下结果: 下面我讲逐一介绍这个程序所包含的内容。 Display 这是一个顶层容器组件,类似于Container或Component的功能,它主要负责与底层的窗口 系统之间的连接。在具体含义上,它代表"屏幕"。 一个Display可以包含多个Shell(也是容器组件, 下面会介绍到)。 通常情况下,一个应用程序只含一个Display,即Display通常是一个单例组件 (Singleton)。 Shell 它表示位于"屏幕"上面的"窗口",是Composite组件和Control组件构成的组件树的根。 在 我们的HelloWorld程序中,我们可以设置标题(setText()),设置大小(setSize()),然后通过open() 方法来显示这个窗口。怎么样,感觉很像JFrame吧?其实功能上差不多。 Composite 可以包含其它Composite和Control的容器 Control 这是一个重量级(HeavyWeight)系统对象。像按钮(Button),标签(Label),表格, 工具栏和树形结构这些组件都是Control的子类,Conposite和Shell也不例外。 2.1.1 消息循环 我们可以看到,上面的代码中有这样的语句:
如果你像我一样是由Java语言起步的,那么你会对这个消息循环的代码感到比较陌生,毕竟在SWING中 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |