什么是SWT
2016-01-07 14:18
288 查看
什么是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程序了。
参考: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程序了。
相关文章推荐
- 将datatable转化为list
- 函数后面加throw关键字
- 【c/c++】关键字typedef
- redis学习(二)redis数据类型 Date Types
- PHP的pm、pm.max_requests、memory_limit
- 如何像后端一样写前端代码?
- 调试那些事儿
- 生成元 手打
- Troubleshooting ORA-3137 [12333] Errors Encountered When Using Oracle JDBC Driver (文档 ID 1361107.1)
- DEDE免登陆接口 For DEDE_v5.X,实现自动登陆,永不过期
- 【Android 基础】Animation 动画介绍和实现
- ListView 动态加载
- Android使用webService
- Linux 线程操作函数技能总结
- LocalActivityManager类:为什么Activity的onResume不被执行
- Android下DLNA开发简介
- 12 个非常实用的 jQuery 代码片段
- java下载时中文乱码的处理
- 32位类型(int、long等)右移(>>)32位
- Android Studio 中 Gradle设置代理