0.序言
还是老风格,从头写些基本的东西,帮助自己,也帮助正处于困惑中的别人。今天介绍的是Eclipse下的SWT的配置过程。自己前两天要做个项目,配置了半天都不正确,后来慢慢总结了一下,不同环境配置的方法可能略有差别吧。
1.什么是SWT
用java的人一定都知道AWT和Swing,而SWT(Standard Widget
Toolkit)则是由Eclipse项目组织开发的一套完整的图形界面开发包,虽然当初仅仅是IBM为了编写Eclipse的IDE环境才编写的一套底
层图形界面
API,但是随着Eclipse的大范围使用,人们也开始对这套GUI开发包做了深入的研究,并且不少人都开始转向SWT的使用。也许有人会问,既然有了
Swing,
那为什么还要SWT?答案很简单,因为人们的理念不同。SWT的原理是根据运行者的操作系统不同调用JNI来完成图形界面的绘制的,如果你用的是
Windows,那么建立的窗口就是windows风格的,还可以用XP的皮肤,如果是Linux或者MacOS的话,则在代码不改变的情况下,绘制出相
应风格的界面。而Swing则是完全从底层开始自己“手绘”界面的,这也就导致了速度比较慢和工人的“风格诡异”的问题。当然,由于Sun的强大推动力和
AWT/Swing的普及,很多人仍然在使用Swing作为首选的GUI开发工具包。引用一句话做比喻:Swing就像Java决定不通过操作系统来实现
原生的IO,而是通过磁头马达API自己来读磁盘的扇区。Swing基本上就是这样的,它拿着个底层的“paint(Graphics)”方法,自己来绘
制所有的窗口组件。
2.下载与安装
Eclipse本身就自带了SWT的相关jar包,所以不用下载,除非你想看看SWT的源码,当然这对于开发者来说是很有好处的。另外,如果不喜欢自己手
写GUI代码的话就去下载一个可视化开发插件吧,目前比较常用的是WindowBuilder Pro(原来的swt designer),http://www.instantiations.com/windowbuilderpro/左侧点Download里面就可以下载,根据不同的Eclipse版本,选择相应的文件,必须要说明的,这是一个商业软件,需要注册(这也就以为着有注册机可以下载,注册机的地址就不多说了,上网搜一下就可以了)。下载完成后,安装即可。
3.配置
我下载的是zip版,解压缩之后直接拷贝到插件目录下的,所以配置起来有些麻烦,之前貌似用过一个二进制安装程序版的,安装完之后基本上不需要配置就可以用了。这里讲解一下我配置的过程。
打开Eclipse,新建,在新建向导中,找到SWT/JFace Java Project,单击Next。
接下来输入项目名称,选择JRE(一般默认即可),单击Next,在这一步中,选中Libraries选项卡,单击Add External JARs,添加外部jar包。
这里一共要添加6个,在你的Eclipse的插件(plugins)目录中,分别是:
org.eclipse.swt.win32.win32.x86_3.2.1.v3235.jar;
org.eclipse.swt_3.2.1.v3235e.jar;
org.eclipse.core.commands_3.2.0.I20060605-1400.jar;
org.eclipse.jface.text_3.2.1.r321_v20060810.jar;
org.eclipse.jface_3.2.1.M20060908-1000.jar;
org.eclipse.equinox.common_3.2.0.v20060603.jar
根据版本不同,文件名的数字部分可能会有些不同,添加好后就可以单击finish了。
这时就建立好一个SWT项目了,但是别着急,如果这时按照Run as Java
Application的形式运行你的SWT程序的话很可能会提示:Exception in thread "main"
java.lang.UnsatisfiedLinkError: no swt-win32-3235 in
java.library.path。这是由于没有导入SWT原生库的缘故。因此我们要右键单击项目,选择Import,接下来选择General-〉
File
System来导入它,这个swt-win32-3235以dll文件的形式存在于..\MyEclipse\eclipse\plugins
\org.eclipse.swt.win32.win32.x86_3.2.1.v3235中,通过Browse按钮选择这个目录,然后在窗口左边选中
这个目录,在右边的文件中选中swt-win32-3235.dll这个文件,finish就可以了。
4.测试
在新建好的项目中单击右键,选择新建,Designer->JFace->ApplicationWindow,填入新建的类名称和包就可以
新建一个ApplicationWindow了,系统会自动建立好相应的代码框架,选择Run as Java
Application,就可以运行这个自动生成的SWT程序了。
5.结束语
说实在的,SWT有很多值得研究的东西,包括Eclipse的插件开发相关技术,当然以后有时间会把学习心得写出来的。这篇文章只是简单的介绍了SWT的配置过程,如果需要了解SWT相关技术可以查询相关资料。