文档章节

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

溪边九节
 溪边九节
发布于 2016/04/09 22:03
字数 1693
阅读 105
收藏 0

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了!

© 著作权归作者所有

溪边九节

溪边九节

粉丝 43
博文 129
码字总数 107230
作品 1
南京
程序员
私信 提问
00fly/springmvc_ibatis_plus

#springmvcibatisplus ** 针对ibatis框架的代码生成器项目不再维护了,sorry。。。 ** 说明:如果数据库表中oracle无blob,clob字段,mysql中无text,blob字段请使用 noSupportBCLOB 分支代码...

00fly
2018/06/01
0
0
JBoss 系列十一:JBoss Cluster Framework Demo 介绍

内容概要 JBoss Cluster Framework Demo包括JGruops、JBossCache、Infinispan,我们在随后的系列中会使用和运行这些示例来说明JGroups、JBossCache、Infinispan等的主要API和使用方法。本部分...

无鸯
2014/02/04
110
0
Tommy_z/Fireline Design

#Fireline Design 背景介绍:作者从事 JAVA SWT桌面应用开发多年,深感JAVA 开发的 GUI代码的繁锁与重复 。于是想改进JAVA图行界面设计器 windowbuilder pro 在上面加入类似visaul studio d...

Tommy_z
2014/08/05
0
0
《Eclipse从入门到精通》常见问题解答

附录 B  读者提问精选(第二次印刷) 起步篇 问:为什么我的 Swt-Designer 安装总是不成功? 答:将安装步骤要点简述如下: ( 1 )下载 笔者于 2005 年 8 月重新去 http://www.swt-designe...

唐玄奘
2017/12/04
0
0
Java Web Start简介

最近由于工作关系,老大嘱咐我看一下Java Web Start。以前安装JDK时,会在“开始”菜单加一个快捷菜单“Java Web Start”,也不知是做什么用的,我一般都是删除。今天从网上查了一下资料,不...

唐玄奘
2017/12/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部