- 浏览: 224844 次
- 性别:
- 来自: 烟台
文章分类
最新评论
-
KateAndNomi2333:
kunchong21 写道tinguo002 写道List l ...
ArrayList深拷贝的一种实现方法 -
kunchong21:
tinguo002 写道List list1 = new Ar ...
ArrayList深拷贝的一种实现方法 -
suihr:
你设置的操作系统的时区正确吗?
Tomcat5.5时区设置 -
xiao_Yao:
我用windows8 tomcat5.5无法 使用 呀
Tomcat5.5时区设置 -
hftgoodgood:
hftgoodgood 写道 ...
通用权限管理系统设计篇(三)——概要设计说明书
Java桌面应用程序设计新贵:SWT的简介 (1)
开发者在线 Builder.com.cn 更新时间:2007-10-23作者:dxaw 来源:赛迪网技术社区
本文关键词: SWT java JAVA
Java语言的声望和它在桌面应用程序(GUI程序)所取得的成就显然极不相符,至今仍然很少能看到非常成功Java桌面程序。虽然有JBuilder,Netbean,JProbe等大型软件作为代表,但这仍不能证明Java的GUI程序是成功的:它们的外观总是和同一操作系统平台下的其它软件显得格格不入。对机器配置的需求也似乎永无止境,这使得它们只能被一些总是拥有当前最高性能PC的程序员们所容忍,或是那些不在乎金钱和时间的专业用户所接受。对绝大多数计算机使用者来说,AWT或SWING代表着怪异的界面和无法接受的速度。Standard Widget Toolkit(SWT)或许是Java这一噩梦的终结者,广大Java程序员终于可以开发出高效率的GUI程序,它们拥有标准的外观,几乎没有人能看出你的程序是用Java写出来的,更为重要的是,这些程序是跨平台的。 SWT本身仅仅是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面 API。或许是无心插柳,或是有意为之,至今为止,SWT无论是在性能和外观上,都超越了SUN公司提供的AWT和SWING。目前Eclipse IDE已经开发到了2.1版本,SWT已经十分稳定。这里指的稳定应该包含两层意思: 一是指性能上的稳定,其中的关键是源于SWT的设计理念。SWT最大化了操作系统的图形构件API,就是说只要操作系统提供了相应图形的构件,那么SWT只是简单应用JNI技术调用它们,只有那些操作系统中不提供的构件,SWT才自己去做一个模拟的实现。可以看出SWT的性能上的稳定大多时候取决于相应操作系统图形构件的稳定性。 另一个稳定是指SWT API包中的类、方法的名称和结构已经少有改变,程序员不用担心由于Eclipse组织开发进度很快(Eclipse IDE每天都会有一个Nightly版本的发布),而导致自己的程序代码变化过大。从一个版本的SWT更新至另一版本,通常只需要简单将SWT包换掉就可以了。 第一个SWT程序 下面让我们开始一个SWT程序。(注意:以下的例子和说明主要针对Windows平台,其它的操作系统应该大同小异)。首先要在Eclipse安装文件中找到SWT包,Eclipse组织并不提供单独的SWT包下载,必须下载完整的Eclipse开发环境才能得到SWT包。SWT是作为Eclipse开发环境的一个插件形式存在,可以在${你的eclipse安装路径}plugins路径下的众多子目录下去搜索SWT.JAR文件,在找到的JAR文件中包含了SWT全部的Java类文件。因为SWT应用了JNI技术,因此同时也要找到相对应的JNI本地化库文件,由于版本和操作平台的不同,本地化库文件的名称会有些差别,比如SWT-WIN32-2116.DLL是Window平台下Eclipse Build 2116的动态库,而在Unix平台相应版本的库文件的扩展名应该是.so,等等。注意的是,Eclipse是一个开放源代码的项目,因此你也可以在这些目录中找到SWT的源代码,相信这会对开发很有帮助。下面是一段打开空窗口的代码(只有main方法)。
确信在CLASSPATH中包括了SWT.JAR文件,先用Javac编译例子程序。编译无错后可运行java -Djava.library.path=$ com.e2one.example.OpenShell,比如SWT-WIN32-2116.DLL件所在的路径是C:swtlib,运行的命令应该是java -Djava.library.path=c:swtlib com.e2one.example.OpenShell。成功运行后,系统会打开了一个空的窗口。 剖析SWT API 下面再让我们进一步分析SWT API的组成。所有的SWT类都用org.eclipse.swt做为包的前缀,下面为了简化说明,我们用*号代表前缀org.eclipse.swt,比如*.widgets包,代表的是org.eclipse.swt.widgets包。 我们最常用的图形构件基本都被包括在*.widgets包中,比如Button,Combo,Text,Label,Sash,Table等等。其中两个最重要的构件当数Shell和Composite。Shell相当于应用程序的主窗口框架,上面的例子代码中就是应用Shell构件打开一个空窗口。Composite相当于SWING中的Panel对象,充当着构件容器的角色,当我们想在一个窗口中加入一些构件时,最好到使用Composite作为其它构件的容器,然后再去*.layout包找出一种合适的布局方式。SWT对构件的布局也采用了SWING或AWT中Layout和Layout Data结合的方式,在*.layout包中可以找到四种Layout和与它们相对应的布局结构对象(Layout Data)。在*.custom包中,包含了对一些基本图形构件的扩展,比如其中的CLabel,就是对标准Label构件的扩展,上面可以同时加入文字和图片,也可以加边框。StyledText是Text构件的扩展,它提供了丰富的文本功能,比如对某段文字的背景色、前景色或字体的设置。在*.custom包中也可找到一个新的StackLayout布局方式。 SWT对用户操作的响应,比如鼠标或键盘事件,也是采用了AWT和SWING中的Observer模式,在*.event包中可以找到事件监听的Listener接口和相应的事件对象,例如常用的鼠标事件监听接口MouseListener,MouseMoveListener和MouseTrackListener,及对应的事件对象MouseEvent。 *.graphics包中可以找到针对图片、光标、字体或绘图的API。比如可通过Image类调用系统中不同类型的图片文件。通过GC类实现对图片、构件或显示器的绘图功能。 对不同平台,Eclipse还开发了一些富有针对性的API。例如,在Windows平台,可以通过*.ole.win32包很容易的调用ole控件,这使Java程序内嵌IE浏览器或Word、Excel等程序成为可能! 更复杂的程序 下面让我们展示一个比上面例子更加复杂一些的程序。这个程序拥有一个文本框和一个按键,当用户点击按键的时候,文本框显示一句欢迎信息。 为了文本框和按键有比较合理的大小和布局,这里采用了GradLayout布局方式。这种布局是SWT中最常用也是最强大的布局方式,几乎所有的格式都可能通过GradLayout去达到。下面的程序也涉及到了如何应用系统资源(Color),以及如何释放系统资源。
|
发表评论
-
eclipse下启动tomcat出现Setting property 'source' to 'org.eclipse.jst.jee.server: '错误的
2012-09-19 13:52 945eclipse下启动tomcat出现Setting pr ... -
java List remove 时的小问题
2011-11-16 17:33 1645From:http://hi.baidu.com/xia ... -
HP ProLiant DL380 G6 服务器 - 内存的插法详解
2011-11-15 14:05 2513HP ProLiant DL380 G6 服务器 - 内 ... -
Tomcat5.5时区设置
2011-10-21 11:00 2012项目中遇到Tomcat时间跟系统时间不一致的情况,在网上 ... -
记录tomcat控制台输出日志
2010-11-11 10:23 1731今天把用了2年的tomcat重新整了下,终于解决了日志的记录 ... -
成功配置tomcat的log4j日志系统,格式:HTML+每天以yyyy-mm-dd.log命名的日志文件
2010-11-11 10:19 6241http://www.blogjava.net/flysky1 ... -
关于img src值为空时,2次请求问题的深入调研
2010-08-25 14:19 1386http://hi.baidu.com/bdui/blog ... -
java String.getBytes()编码问题
2010-07-29 16:11 1685http://hi.baidu.com/miserce/b ... -
Java 中的位运算
2010-06-28 09:50 1096移位运算符 包括: “>> 右移 ... -
设置eclipse启动参数解决内存不足问题
2010-03-16 16:17 2025http://www.21jn.net/html/62/n-5 ... -
JAVA_高级特性(hashCode,clone,比较器,Class反射,序列化)
2010-02-03 10:06 1405http://blog.csdn.net/wjp5536509 ... -
com.mysql.jdbc.CommunicationsException: Communications link failure due to under
2010-01-16 14:08 2583com.mysql.jdbc.CommunicationsEx ... -
java术语(PO/POJO/VO/BO/DAO/DTO)
2010-01-13 16:01 965PO(persistant object) 持久对 ... -
Eclipse下插件安装
2009-11-09 14:09 936Eclipse plugin resource center ... -
Java/J2EE中文问题终极解决之道
2009-10-21 14:23 725Java/J2EE中文问题终极解 ... -
ArrayList深拷贝的一种实现方法
2009-09-16 11:29 15907大家应该理解浅拷贝和 ... -
ADO封装类实现文件
2009-09-14 15:51 1328http://developer.51cto.com 2 ... -
使用Java多线程实现任务分发
2009-09-14 10:28 1037使用Java多线程实现任 ... -
ExecutorService来进行线程池的方式实现多线程
2009-09-12 10:16 2178ExecutorService来进行线程池的方式实现多线程 ... -
openssl 生成pem 建立CA
2009-08-24 13:45 2325openssl 生成pem 建立CA 关 ...
相关推荐
#### 一、SWT简介与配置的重要性 SWT(Standard Widget Toolkit)是一种用于构建基于Java的应用程序的图形用户界面工具包。它提供了丰富的控件集,并能够生成本地外观和感觉的界面,这使得应用在不同的平台上拥有...
### SWT简介 SWT(Standard Widget Toolkit)是一个开放源码的原生GUI组件库,主要用于Java平台。它是Eclipse平台的UI组件之一,并且具有独立于Eclipse框架的能力。SWT的主要特点是能够提供与本地操作系统一致的...
1. SWT简介: SWT是由Eclipse基金会维护的,它弥补了Java AWT和Swing在与本地系统交互方面的不足。SWT提供了各种组件,如按钮、文本框、列表、树视图等,这些组件可以构建出复杂的用户界面。SWT利用JNI(Java Native...
SWT简介 SWT (Standard Widget Toolkit) 是一个开源的GUI组件库,主要用于Java平台。它是Eclipse UI框架的基础,并被广泛应用于各种Java应用中。相比于早期的AWT和后来的Swing,SWT提供了一种更加本地化外观的用户...
**1.1.1 SWT简介** SWT (Standard Widget Toolkit) 是一种用于创建图形用户界面(GUI) 的Java库,主要面向Java应用开发,特别是在Eclipse平台上。SWT通过提供一组与本地操作系统紧密结合的小部件(widgets),使开发...
**JFace与SWT简介** JFace和SWT是Java编程中用于构建用户界面的两个重要库,它们都是由Eclipse基金会开发并维护的。SWT(Standard Widget Toolkit)是Eclipse的基础UI框架,它提供了丰富的图形用户界面控件,如按钮...
#### SWT简介 SWT是一个开源的图形工具包,它为Java程序提供了本地外观和高性能的图形用户界面组件。SWT的主要优势在于它能够直接调用操作系统的图形API,从而实现更接近原生的应用程序界面,这使得SWT应用具有良好...
1. SWT简介: SWT是Eclipse IDE的基石,它允许开发者构建功能丰富的、高性能的应用程序。与Java Swing不同,SWT直接利用了操作系统提供的API,这意味着SWT应用的界面与操作系统平台的其他应用更为相似,提供了更好...
SWT简介 SWT(Standard Widget Toolkit)是一种开源的GUI组件库,主要用于Java平台。它是Eclipse平台UI的基础,并为开发者提供了丰富的本地操作系统外观风格的用户界面组件。SWT通过JNI(Java Native Interface)...
1. **SWT简介** SWT 是 Eclipse 基金会的一个开源项目,它提供了一系列与操作系统原生 GUI 控件对应的 Java 类。SWT 的优势在于其高效性和原生感,因为它直接调用操作系统提供的 API,而不是模拟控件。这使得SWT...
- **SWT简介**:SWT是一种轻量级的图形库,它通过直接调用本地操作系统的图形API来渲染用户界面组件,从而确保了良好的性能和本地化的用户体验。 - **SWT的特点**:SWT提供了丰富的图形组件,例如按钮、文本框、...
1. SWT简介: SWT(Standard Widget Toolkit)是Eclipse基金会开发的一个开源GUI库,用于Java编程。它提供了与操作系统原生UI组件相对应的控件,使得Java应用程序能够拥有与本地应用程序相似的外观和交互体验。SWT...
**SWT简介** SWT是Java的窗口系统接口,它直接调用操作系统提供的API,从而提供了一种与本机应用程序类似的外观和感觉。SWT组件包括按钮、文本框、滚动条等,它们能够与Windows、Linux、Mac OS X等多种操作系统平台...
#### SWT简介 **SWT**(Standard Widget Toolkit)是由Eclipse基金会开发的一套用于构建Java图形用户界面(GUI)的应用程序接口(API)。与传统的Java图形界面开发工具包如AWT(Abstract Window Toolkit)和Swing...
一、SWT简介 SWT是IBM开发的一个开源库,它是Java AWT和Swing之外的另一种选择。SWT直接绑定到操作系统提供的原生窗口系统,因此它能提供与本地应用程序相似的性能和外观。SWT提供了丰富的控件集合,包括按钮、...
1. **SWT简介** SWT算法是基于边缘的特征检测方法,由Juan Pablo Sánchez等人提出,其核心思想是通过尺度空间分析来寻找图像中的不变性特征。它能够检测出不同尺度和旋转下的图像特征,尤其适合于检测具有复杂背景...
1. SWT简介:SWT是Sun Microsystems的Java Swing的替代品,旨在提供更高的性能和更接近本机的外观和感觉。SWT通过直接调用操作系统API来创建窗口和控件,因此在速度和与操作系统集成方面表现优越。 2. 图片列表预览...
1. **SWT简介** SWT是Eclipse基金会推出的一个开源GUI库,它允许Java开发者创建原生的、高性能的用户界面。SWT基于操作系统提供的API,因此生成的窗口和控件具有平台一致性,既能在Windows、Linux、Mac OS等操作...
SWT简介** SWT是Eclipse项目的一部分,由Eclipse基金会维护。它提供了一组与平台无关的接口,这些接口封装了底层操作系统提供的功能,如窗口、按钮、文本框等控件。通过使用SWT,开发者可以创建与操作系统的原生...
1. **SWT简介**:SWT是Eclipse开源项目的一部分,它提供了与平台无关的API来创建GUI,同时充分利用了本地操作系统的能力,如Windows、Linux或macOS的UI样式和功能。SWT控件可以直接映射到操作系统的原生控件,从而...