1.下载swt:
http://www.eclipse.org/swt/
在Release栏下载目标平台所需要的zip包,解压到某个目录。
Windows:
http://download.eclipse.org/eclipse/downloads/drops/R-3.6.2-201102101200/download.php?dropFile=swt-3.6.2-win32-win32-x86.zip
Linux:
http://download.eclipse.org/eclipse/downloads/drops/R-3.6.2-201102101200/download.php?dropFile=swt-3.6.2-gtk-linux-x86.zip
2.将swt导入到workspace中作为一个project,供其余的project引用。
Import-->Existing Projects into Workspace
3.Hello World
3.1Swt基础概念:
3.1.1所有的内容都要通过Display对象来输出,一般一个程序只有一个Display对象。
3.1.2窗口被称为Shell
3.2创建工程,并引用Swt工程
New-->Java Project
在新创建的工程上点右键,选Properties,修改Java Build Path:
选项卡选择Projects-->Add,勾选刚导入的swt工程,此时要保证此swt工程是打开状态的。
勾选后就可以使用swt包中的类了。
3.3创建HelloWorld类:
New-->Class
输入类名,并勾选创建main函数。
3.4创建Display和Shell
Display display = new Display();
Shell shell = new Shell(display)
3.5设置shell标题栏文本
shell.setText("Hello world!");
3.6显示窗口
shell.open()
试试执行一下,屏幕上一个窗口一闪而过,什么都没看清,这是因为shell.open执行完毕后程序退出了,窗口自然消失了。
3.7在shell.open()后加个死循环等待看看
for(;;) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
}
}
再执行一下,可以看到一个窗口出现,但是什么事件都不响应。
3.8不响应事件是因为循环中没有处理事件,将循环修改一下,改成调用Display类的事件读取分发函数,则就能响应事件了。
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
3.9当程序执行完毕时回收资源。
display.dispose();
在swt中有两个原则:
3.9.1谁创建谁dispose,就好像内存分配回收一样,display是被创建的,所以要被dispose。shell在关闭窗口时已经dispose了,所以不必再dispose。
3.9.2父组件dispose时会dispose所有子组件。
完整的代码:
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
public class HelloWorld {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setText("Hello world!");
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
4.导出可执行的jar
Project -> right click -> export -> JAVA -> Runnable JAR file 选择要输出的project和保存位置就可以得到可运行的jar文件了。
不过电脑的jar文件一般都与压缩文件关联了,点击就被解压缩了,所以要修改打开方式:
http://blog.csdn.net/zqiang_55/article/details/6908660
首先说说在 win7 下
1、选择默认程序:右击jar包,打开方式->选择默认程序->浏览,选中jre下bin文件中javaw.exe(比如我的javaw.exe在D:\Program Files\Java\jre6\bin下)。
2、编辑注册表:HKEY_CLASSES_ROOT\Applications\javaw.exe\shell\open\command,修改数据数值为"D:\Program Files\Java\jdk1.6.0_21\jre\bin\javaw.exe" -jar "%1"(只要在原来的数值下添加-jar即可)。
大功告成,jar文件就可以直接运行了。
改成下面会更好:
将键值改为"C:\Program Files\Java\jre6\bin\javaw.exe" -jar "%1" %*
原理:就是运行
javaw -jar 【jar文件】 【参数信息】
其中【jar文件】 【参数信息】分别对应%1 %*
%1加双引号是防止路径中有空白
其次是在 xp 下
1 打开我的电脑 -> 工具 -> 文件夹选项
2 在 文件夹选项 中的选项卡中选择 文件类型 --> 单击 新建 按钮 -->输入扩展名 jar (注意此处没有 “ . ” )
3 选择 新建的那个JAR文件 ---> 点击 高级
4 单击 新建 按钮 --> 将操作名 命名为 open 执行操作的应用程序选择 javaw 所在的 位置 C:\Program Files\Java\jdk1.6.0_10\jre\bin\javaw
5 注意此处的javaw 为 jre\bin 下的javaw C:\Program Files\Java 为我安装的 java目录,根据自己的安装路径选择
6 单击确定 然后再 编辑 此时可以看到 执行程序变为 "C:\Program Files\Java\jdk1.6.0_10\jre\bin\javaw" %1
7 将其改为 "C:\Program Files\Java\jdk1.6.0_10\jre\bin\javaw" -jar %1 单击确定就 ok 了
PS:为了方便布局界面,可以安装WindowBuilder插件,可以在此页面找到:http://www.eclipse.org/windowbuilder/download.php
或者直接使用:http://dl.google.com/eclipse/inst/d2wbpro/latest/3.7
因为是google的网站,你知道的,不是那么稳定,自己想办法了。
安装WindowBuilder Engine以及SWT Designer
安装以后就可以:new project -> windowBuilder -> SWT designer -> swt/jface java project 新建windowbuilder项目了。
如果要添加一个界面相关的类,不要直接添加class,而是add other->window builder->SWT designer->SWT里面添加需要的类。