现在的位置: 首页 > 综合 > 正文

eclipse下搭建SWT图形界面开发环境

2014年05月12日 ⁄ 综合 ⁄ 共 1886字 ⁄ 字号 评论关闭


什么是SWT


参考:http://www.cppblog.com/baby-fly/archive/2009/10/20/99008.html

        用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)”方法,自己来绘 制所有的窗口组件。



配置

Eclipse本身就自带了SWT的相关jar包,所以不用下载,除非你想看看SWT的源码,当然这对于开发者来说是很有好处的。另外,如果不喜欢自己手
写GUI代码的话就去下载一个可视化开发插件吧,目前比较常用的是WindowBuilder Pro(原来的swt designer)


 确定你已经安装:WindoBuilderPro,下载点我  
  


打开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了(如果这里出现错误,则去 run configuration里修改)
        这时就建立好一个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就可以了。


测试

        在新建好的项目中单击右键,选择新建,Designer->JFace->ApplicationWindow,填入新建的类名称和包就可以 新建一个ApplicationWindow了,系统会自动建立好相应的代码框架,选择Run as Java Application,就可以运行这个自动生成的SWT程序了。




抱歉!评论已关闭.