快速业务通道

SWT全接触 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14

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如下:

import org.eclipse.swt.widgets.*; public class HelloWorld {    public static void main(String[] args)    {      Display display = new Display();   Shell shell = new Shell(display);   shell.setText("Hello World");   shell.setSize(200, 100);   shell.open();   while (!shell.isDisposed()) {     if (!display.readAndDispatch())    display.sleep ();   }   display.dispose ();     } }

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 消息循环

我们可以看到,上面的代码中有这样的语句:

while (!shell.isDisposed()) {    if (!display.readAndDispatch())   display.sleep (); }

如果你像我一样是由Java语言起步的,那么你会对这个消息循环的代码感到比较陌生,毕竟在SWING中

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号