Eclipse平台利用SWT Designer6.0进行图形界面开发入门--搭建开发环境篇
1.下载相关软件
Eclipse3.2 下载 http://www.eclipse.org/downloads/
SWT Designer6.0下载 http://www.instantiations.com/windowbuilderpro/
SWT Designer6.0注册机下载 http://www.itpub.net/714132.html
2.安装Eclipse
Eclipse3.2下载后为一个“ZIP”文件包“eclipse-SDK-3.2.1-win32.zip”,解压这个包后我们得到以下目录:

点击“Eclipse.exe”图标就可以启动ECLIPSE集成开发环境。
3.为ECLIPSE集成开发环境安装“SWT Designer6.0”插件
SWT Designer6.0下载后是一个文件名为“Designer_v6.0.0_for_Eclipse3.2.zip”的压缩包。在ECLIPS目录下新一个“mypugins”目录,再在“mypugins”目录下建“Designer_v6.0.0_for_Eclipse3.2”目录,再在“Designer_v6.0.0_for_Eclipse3.2”下建“ECLIPSE”目录。把解压后的文件放到:D:/eclipse/mypugins/Designer_v6.0.0_for_Eclipse3.2/eclipse目录下:如下图:

返回“D:/eclipse”目录,在“D:/eclipse”目录下新建“links”文件夹,在“links”文件夹下新建文件“mylink.link”,用写字板打开,写入“path=d:/eclipse/mypugins/Designer_v6.0.0_for_Eclipse3.2”内容:如下图:

运行eclipse,在[Window]->[preferences]中出现Designer节点说明Designer插件安装成功。

Designer Type:选择WindowBuilder(SWT and Swing),Designer Mode:选择Professional,Version:选择6。0。0(没有,可输入自己的swt designer版本号,注意不能填入6。4。0),点击Generate按钮,即可生成Serial Number和Activation Key,如下图:
File- >project-> Designer SWT/JFace Java Project
建好工程后要导入 SWT 的原生库,要不然,项目运行时会抱错: Java.lang.UnsatifiledLinkError. no swt-awt-win32-3064.dll in java.Labrary.path 我这里是 swt-awt-win32-3064.dll ,可能版本会有点不一样。导入的方法:选择项目名,点右键, Import->File System 如下图
一般 swt-awt-win32-3064.dll 在 x:/eclipse/plugins/org.eclipse.swt.win32_
3.0.2
/os/win32/x86 下选择好后 Finish 就好了
4. 建 SWT Application
File->new ->others->Designer->SWT->Application Window
package : com.swtdesign
name: Myapp
create contents in : public static main() method
如下图
点 Finish
就好了
看代码
package com.swtdesigner; // 包名
import org.eclipse.swt.widgets.Display;// 程序所用到的类都会用 import 标记在这里,
import org.eclipse.swt.widgets.Shell; //import 的快捷键 Ctrl+Shift+O
public class Test{ // 一个标准的 Java 类 HelloWorld
public static void main(String[] args) {
//display 负责管理事件循环和控制 UI 线程和其他线程之间的通讯。
final Display display = Display.getDefault();
final Shell shell = new Shell(); // shell 是程序的主窗口
shell.setSize(327, 253); // 设置主窗口的大小
shell.setText("SWT Application"); // 设置主窗口的标题
shell.layout(); //shell 应用界面布置
shell.open(); // 打开 shell 主窗口
while (!shell.isDisposed()) { // 如果主窗口没有关闭,则一直循环
if (!display.readAndDispatch()) // 如果 display 不忙
display.sleep(); //display 休眠
}
}
}
从这个代码可以看到,创建一个典型的SWT应用程序需要以下步骤:
l 创建一个 Display
l 创建一个或多个 Shell
l 设置 Shell 的布局
l 创建 Shell 中的的组件(注:本例还没有加入组件,只是一个空窗口)
l 用 open() 方法打开 Shell 窗口
l 写一个事件转发循环
l 销毁 display
接下来我们在 应用程序上加一个 Button 并制作他的 单击事件。事件的内容是调出一个提示窗口,和一个文本框,接受外面的输入。
如下图在,切换到 design 模式,加一个 button ,在左边的菜单里选一个 button ,然后直接点在面板上,不是拖过去。
可以直接在这里修改属性 |
双击 button 为其添加 selection 事件,也可以点右键- >implement->selection- |
然后切换到 source 模式,看到增加了以下代码
final Button button = new Button(shell, SWT.NONE);
// 这就是增加的鼠标单击事件代码,以匿名内部类的方式写的
button.addSelectionListener(new SelectionAdapter() {
// 要实现事件,必须实现 widgetSelected 方法
public void widgetSelected(SelectionEvent e) {
// 信息提示对话框
MessageDialog.openInformation(null,"hello world","hello");
}
});
我们可以将匿名内部类,改成不是匿名的
将原来的事件代码改为:
button.addSelectionListener(new addButtonSelected());
同时加 addButtonSelected 内部类
// 加 static 使其可以直接 new ,继承 SelectionAdapter ,直接写方法就可以了
public static class addButtonSelected extends SelectionAdapter
{
public void widgetSelected(SelectionEvent e) {
MessageDialog.openInformation(null,"hello world","hello");
}
}
好了这样就实现了加一个 button ,并单击相应一个事件。够简单了吧。下面加一个文本框
同理切换到 Design 模式下加一个名为 input_Text 的文本框,在文本框左边加个 Clable 的标签“输入”,再加一个 button(input_button) ,点确定后接受输入。然后加一组输出现实, output_Text. , output_button
如下图
然后加响应代码;
// 把文本框的内容和一个 String 变量绑定
private static String output_string=null;
// 输入输出事件
input_button.addSelectionListener(new inputText());
output_button.addSelectionListener(new outputText());
// 输入事件
public static class inputText extends SelectionAdapter
{
public void widgetSelected(SelectionEvent e)
{
output_string=input_text.getText();
System.out.println(output_string);
}
}
// 输入事件
public static class outputText extends SelectionAdapter
{
public void widgetSelected(SelectionEvent e)
{
output_text.setText(output_string);
System.out.println(output_string);
}
}
最后的效果如下图