1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SWT 全接触 [收藏此页] [打印] 作者:佚名??2007-10-28 内容导航: SWT简介 第1页: SWT简介 第2页: SWT起步 第3页: 用SWT绘制2D图形 【IT168 技术文档】 ??? Java 世界的人似乎一直都对 Java 的桌面应用程序十分不满,从 AWT 到 SWING,从默认的 Theme到第三方的产品,不是太难看(AWT)就是在某些平台有 BUG(SWING,Quaqua--一个Windows平台下的仿Mac的主题包),再不就是对中文支持不好(某些第三方 LookAndFeel)。于是,如果想要获得和本机平台一致的用户界面和比较稳定的性能,SWT就成了一个不可忽视的选择。SWT 是一个独立于平台的,可以脱离 Eclipse 框架单独使用的图形组件,用JNI技术提供与本机系统同样的用户界面组件的观感,较好的运行效率,稳定的平台表现。 当然,虽然这个专题名叫全接触,但毕竟不可能面面俱到,在一篇文章中兼收并蓄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 (); } } 运行这个程序就会得到如下结果: 下面我讲逐一介绍这个程序所包含的内容。 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())

文档评论(0)

PPT精品 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档