SWT的介绍(配置,打包步骤)

来源:互联网 发布:程序员上线烧香图片 编辑:程序博客网 时间:2024/04/30 05:00

SWT的介绍(附加:Eclicpse3.1.1下配置SWT,打包发布SWT程序,转EXE一条龙过程记录)

swt

 

一、SWT的介绍

 

(使用SWT在各个操作系统上的效果)

 

SWT(Standard Widget Toolkit)
  Standard Widget Toolkit是一个开源的GUI编程框架,与AWT/Swing有相似的用处,著名的开源IDE-eclipse就是用SWT开发的。
  在SWT之前,Sun已经提供了一个跨平台GUI开发工具包AWT (Abstract Windowing Toolkit). 虽然AWT框架也使用的是原生窗口部件(native widgets),但是它一直未能突破LCD问题。LCD问题导致了一些主要平台特征的遗失。
  为解决这个问题,Sun又创建了一个新的框架。这个框架不再使用原生窗口部件,而是使用仿真窗口部件(emulated widgets)。这个方法虽然解决了LCD问题,并且提供了丰富的窗口部件集,但是它也带来了新的问题。例如,Swing应用程序的界面外观不再和原生应用程序的外观相似。虽然在JVM中这些Swing应用程序已经得到了最大程度的性能改善,但是它们还是存在着其原生对应物所不具有的性能问题。并且,Swing应用程序消耗太多的内存,这样Swing不适于一些小设备,如PDA和移动电话等。
  IBM进行了尝试以彻底解决AWT和Swing框架带来的上述问题。最终,IBM创建了一个新的GUI库,这就是SWT。SWT框架通过JNI来访问原生窗口部件。如果在宿主(host)平台上无法找到一个窗口部件,SWT就会自动地模拟它。
  为了方便开发SWT程序,在SWT基础上又创建了一个更易用、功能强大的图形包“JFace”。然而,JFace并不能完全覆盖SWT的所有功能,所以编程时SWT、JFace都会要用到,但是一般来说,能用JFace的组件就最好不要用SWT的。
  SWT本身仅仅是Eclipse组织为了开发Eclipse IDE环境所编写的一组底层图形界面 API。或许是无心插柳,或是有意为之,至今为止,SWT无论是在性能和外观上,都超越了SUN公司提供的AWT和SWING。目前SWT已经十分稳定。这里指的稳定应该包含两层意思:
  一是指性能上的稳定,其中的关键是源于SWT的设计理念。SWT最大化了操作系统的图形构件API,就是说只要操作系统提供了相应图形的构件,那么SWT只是简单应用JNI技术调用它们,只有那些操作系统中不提供的构件,SWT才自己去做一个模拟的实现。可以看出SWT的性能上的稳定大多时候取决于相应操作系统图形构件的稳定性。

  另一个稳定是指SWT API包中的类、方法的名称和结构已经少有改变,程序员不用担心由于Eclipse组织开发进度很快(Eclipse IDE每天都会有一个Nightly版本的发布),而导致自己的程序代码变化过大。从一个版本的SWT更新至另一版本,通常只需要简单将SWT包换掉就可以了。

 

 
二、Eclicpse3.1.1下配置SWT,打包发布SWT程序,转EXE一条龙过程记录
原文:http://songdi.spaces.live.com/blog/cns!ee52cc79737cf30e!346.entry


一、Eclipse下安装SWT
****SWT 类库的下载和安装
下载 SWT 3.3 M5 swt-3.3M5-win32-win32-x86.zip( Windows 版本):
使用eclipse3.3的好处是它运行的时候不需要再指定library 路径了.

然后参考 Developing SWT applications using Eclipse 一文中的说明搭好基于 Eclipse 的开发环境(以下为文章内容的中文翻译):

因为 SWT 被集成为 Eclipse plug-in API 的一部分, 独立运行的应用程序开发最好基于 SWT 独立版的下载. 这个文档讲帮助你安装.

首先, 从SWT主页下载适于您的平台的 SWT 的.zip 文件.

SWT .zip 文件可以导入到你的工作区. 选择 File 菜单, 然后选择 Import , 选中 Existing Projects Into Workspace 向导. (新版本的 eclipse 中, 你可以在 General 分类下找到 Existing Projects Into Workspace).
 

定位向导里面的路径到你下载的 .zip 文件所在的目录. 这将会在工作区里创建一个名为 org.eclipse.swt 的工程.
 

您自己的 Java 项目可以将 SWT 项目作为依赖添加进来. 打开Java 项目的 Properties 对话框, 在 Java Build Path 设置页中, 包含 org.eclipse.swt 项目.
 

将 SWT 项目作为依赖项, 你可以使用 Eclipse 的一些方便的功能例如 Javadoc 视图和代码提示(code assist).
 

现在你可以在你的项目中运行任何的主类, 通过选中类然后选择菜单 Run > Run As > Java Application.

二、打包发布SWT程序
1.因为需要SWT的jar.但是Eclipse3.1.1配合的的SWT不是通过SWT.jar发布的!是org.eclipse.swt.win32.win32.x86_3.1.0.jar。里面包括了JINI的DLL和SWT类文件。
需要下载
http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops/R-3.1.1-200509290840/swt-3.1.1-win32-win32-x86.zip
这里有SWT.jar,和3个DLL,把他们解压缩出来,备用!
2.通过Eclipse的导出功能,生成一个可执行的jar,MANIFEST.MF文件选择由Eclipse生成,并且保存到项目中。
3.上面2的步骤,只是为了得到MANIFEST.MF文件。下面修改一下这个文件。
加上 Class-Path SWT.jar
如果还有其他的jar,用空格分开,加到后面
4.再生成一次jar,MANIFEST.MF选择修改后的。
5.将打包的jar,SWT.jar,3个DLL放到一个文件夹下,双击可执行的jar,程序运行!
三jar转EXE
1.打开JSmooth0.9.7。
2.选择skeleton,在skeleton properties中先把Launch java app in the exe process,Debug console选中。可以查看生成EXE文件执行过程信息。
3.选择Executable.
选择生成的EXE文件存放位置。
选择EXE文件图标
设置当前路径,选择要转换的jar文件所在文件夹
4.选择Application
设置Main Class,可执行jar中的Main Class注意写类全名
设置Application Argument,如果需要传入参数,写到这里
设置Embedded jar: 可执行的jar
设置Classpath:SWT.jar 如果有其他的继续添加
5.选择JVM Selection。默认吧。
6.JVM Configuration:
可以设置java properties,内存使用
7.点齿轮。生成!看是否有错误。
8.EXE执行需要的文件:EXE,3个DLL,SWT.jar
把他们考到其他目录,一样可以执行!
9.去掉skeleton properties中的Launch java app in the exe process,Debug console选项。
重新生成。应该OK了!

原创粉丝点击