虚无缥缈

统计

最新评论

最新版SWT Designer 6.0 安装,注册方法以及例子

1.下载与安装:
①要进行Eclipse的图形界面的开发,首先需要找到能够开发Eclipse的图形开发插件,这里我采用的是SwtDesigner ,其下载地址是:http://www.swt-designer.com. 对应版本为6.0(Eclipse的版本为3.2),另外,你如果想使用最新版本中所提供的gwt(google widget toolket),你可以到http://www.instantiations.com/gwtdesigner/download.html中单独下载GWT。
如果你想同时使用swt、swing和gwt,你也可以到http://www.instantiations.com/windowbuilderpro下,这是全功能版本,上面有说明,哪个带GWT哪个不带。对应去下好了。
首先看一下我的eclipse的安装目录在:F:\hongjun\eclipse,如下图所示。


②安装:在这里我采用的是links方式来安装得
首先把你下载下来的designer插件解压到某一指定目录(例如我的放在F:\hongjun\eclipse designer\eclipse),然后在links文件夹中加入designer.start(文件名可以任意指定),在里面加入如下内容:path=designer
注意,我之所以把解压后的designer插件放在eclipse的安装目录下,是因为我想在links文件中使用相对路径的写法。你可以把它放在你想放的任意地方,此时links的写法要采用绝对路径的写法了,一定要注意!
③验证插件是否安装成功
运行eclipse,在[窗口]->[首择项]中出现Designer节点说明Designer插件安装成功。
(2)注册并激活
a.选择[窗口]->[首选项],弹出一个对话框,选择Designer节点并点击License,用鼠标点击对话框右侧的Registration and Activation按钮。,如下图所示。



b.在下面的对话框中,输入使用SWTDesigner_Window.Builder.Pro_v6_for_Eclipse3.2_Keygen注册机产生的Serial Number和Activation Key,点击下一步按钮(其他地方不必填写或者输入内容,这与以前版本的designer的注册非常不同,一定要注意)。(如下图)



c. 最后确认
正常的话应该出现如下所示的信息:Activation complete.Click Finish to close this wizard.单击“完成”按钮,结束SWTDesigner的注册操作。



此时,再点击Designer节点(如下图所示)



运行eclipse,在菜单中选择[文件]->[新建]->[其他],这时在“新建”弹出对话框中应该出现一个“Designer”选项。并且其下面的展开内容也可以使用了(如下图)。



至此,SWT Designer 6.0 注册完毕!
 
提示:
SWT Designer6.0注册机下载  http://www.itpub.net/714132.html
 
或者:http://www.matrix.org.cn/resource/upload/forum/2005_10_09_104532_PWvvqDcRzr.rar
这个好像原来是为了3。1版本的,我轼过了。可以用的。

接下来

方法一:

Hello,world!: 搭建一个 swt/JFace 开发环境

在前面我曾经提到过:我们假定你对 eclipse 开发有一些了解。所以在这一节中,我将示范如何搭建一个 swt/JFace 开发环境,并且用一个老掉牙的 Hello,world! 程序作为示范。

建立开发环境

你完全可以不使用 eclipse ,而是使用别的 IDE 来进行开发,但是你需要有 swt/JFace 的一些库文件。

为了能够进行正常的 swt/JFace 开发,你需要做以下工作:

第一步 :建立一个 Java 工程:因为这个是大家都非常熟悉的,所以就不再赘述,你可以建立一个任何名字的 Java 工程。

第二步 :导入 swt 以及 JFace 的库文件。这也就意味着:将 swt/JFace 相关的库文件导入到工程的 classpath 中去。

需要的库文件有哪些呢?打开 eclipse 安装目录下的 plugins 文件夹,我们需要找到以下 jar 文件:

l          org.eclipse.swt_3.x.x.jar

l          org.eclipse.jface_3.x.x.jar

l          org.eclipse.core.runtime_3.x.x.jar

l          org.eclipse.ui.workbench_3.x.x.jar

这就是我们搭建一个基本 swt/JFace 程序所需要基本的一些库文件了。其中 3.x.x 视你所使用的 eclipse 版本而定,譬如我的 eclipse 版本是 3.1M6 ,这些 3.x.x 就是 3.1.0 。将他们加入你程序的 classpath 中。

为了更加清楚地说明如何做,你可以看一下下面的图 1 。这是我在 eclipse 的做法:打开工程的 properties 对话框,然后选择 Java Build Path 中的 Libraries 选项卡,将这些 jar 导入进来。当然你可以有自己的做法。

设定classpath

1

第三步 :为你的 java 程序添加本地库文件。如果你使用 windows 的话,你可能注意到在 eclipse plugins 目录下还有一个 org.eclipse.swt.win32_3.x.x.jar ,将这个 jar 解压以后在 os/win32/x86 目录下有几个 dll 文件。这几个 dll swt 通过 JNI 访问 windows 本地 API 提供了接口,我们需要将使 java 程序在启动时候即能够访问它。你可以有多种办法实现这个目的:

最简单的办法就是直接把这几个文件拷贝到你 jre bin 目录下

你也可以设定环境变量时候,在 PATH 中加入这几个 dll 文件的目录。

你还可以在运行程序时候指定 java.library.path 为这几个 dll 所在的目录,在 eclipse 中,如果你打开 Help 菜单中 About eclipse Platform ,然后在出现的对话框中选择 configuration details 按钮,你可以在接下来出现的对话框中找到 java.library.path

配置 java.library.path 你还有另外一种办法,就是在最后运行程序的时候,从 Run 菜单中选择 Run As.. 而不是 Run As Java Application ,填写好必要的其他参数以后打开 Argument 选项卡,然后在 VM Argument 输入框中填写该参数为 dll 文件的路径,如图 2 所示

vm参数设定

2

 

通过这三步工作,你就可以编写 swt/JFace 程序了。

   

   

 

Hello,World!

下面的内容就是我们 Hello,world! 的示例。首先建立一个类,我将这个类取名为 HelloSwt ,在我的工程中,它位于 swtjfacesample 包的下面。类的内容如下:

 1 package swtjfacesample;
 2
 3 import org.eclipse.swt.SWT;
 4 import org.eclipse.swt.widgets.Display;
 5 import org.eclipse.swt.widgets.Shell;
 6 import org.eclipse.swt.widgets.Text;
 7
 8 public   class  HelloSwt  {
 9      /* *
10      * Hello,world!
11      * 
12      * @param args
13       */

14         public   static   void  main(String[] args)  {
15         Display display  =   new  Display();
16         Shell shell  =   new  Shell(display);
17         
18         Text helloText  =   new  Text(shell, SWT.CENTER);
19         helloText.setText( " Hello,World! " );
20         helloText.pack();
21         
22         shell.pack();
23         shell.open();
24
25          while  ( ! shell.isDisposed())  {
26              if  ( ! display.readAndDispatch())  {
27                 display.sleep();
28             }

29         }

30         display.dispose();
31
32     }

33 }

34

代码段 1

关于这段代码的内容,我们会在下面的内容中进行详细介绍。现在我们可以尝试着运行一下,确定已经编译完成后从 eclipse Package Explorer 中选中这个类然后点右键,在弹出的菜单中你会看到 Run As ,进一步选中这一项,然后在二级菜单中选“ Run As Java Application ”,如果运行正常的话你会看到如图 3 的运行结果:

Hello,World!

3

Q&A: 出现了问题怎么办

Q: 我的程序编译时候出现了错误!

A: 如果是提示诸如 Text,Display 这些类不能够被成功引入,那么你需要检查一下是否我们前面提到的 jar 都已经被成功引入到你的 classpath

Q: 编译成功了但是不能运行,出现了异常

A: 检查一下异常信息,如果你的异常信息类似这样:

Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3128 in java.library.path

...

的话,那说明我们在前面第三步提到的那些 dll 没有正常工作,最好能够按照前面的说明重新配置一下。

方法二:
使用用向导建立一个SWT/JFace Java项目

1)选择主菜单“文件→新建→项目”,弹出如下图6.2所示窗口。

6.2 新建项目窗口

2)选择“Designer”下的“SWT/JFace Java Project”项,单击“下一步”,弹出如下图6.3所示窗口。

6.3 创建Java项目窗口

3)填写项目名称“myswt”,项目布局选择第二个,单击“完成”。这时如果打开“java”透视图,可以看到多了一个名为“myswt”的项目,下方还排列着很多库引用,如下图所示窗口。

  java”透视图

注:

1)其实写SWT程序也不是一定要重新建立这样一个新的项目,原来老的“myproject”项目依然可以继续使用的,但必须将SWTJFace包及一些相关的包引用到Java构建路径中,手工一步步做这个工作太过于繁锁。有一个简单的方法:借助SWT Designer新建项目时保存在.classpath文件中的库引用,将其复制粘贴到myproject.classpath中即可。

2)当编写Java程序时,笔者认为“Java”透视图要比默认的“资源”透视图好用,主要是因为前者的包显示不是树状的,用起来较方便。但选择哪一种透视图,还是要看各人的习惯和喜好。本书以后的所讲内容将统一使用“Java”透视图。

6.3.2  导入SWT的原生库

想要运行Java应用程序,必须将SWT的原生包导入到项目中,否则该项目在运行程序时会报异常“java.lang.UnsatisfiedLinkError: no swt-win32-3063 in java.library.path”,并弹出图6.5所示的错误提示框。

6.5 未导入SWT原生包时产生的错误提示框

导入SWT原生包的步骤如下:

1)右键单击项目名“myswt”,在弹出菜单中选择“导入”,则会弹出如图6.6所示窗口。

6.6 导入窗口

2)选择“文件系统”后单击“下一步”,转到如图6.7所示窗口

6.7 选择导入文件

3)通过“浏览”按钮找到SWT原生库的路径(也可以直接输入路径文字),路径为“C:\eclipse\plugins\org.eclipse.swt.win32_3.0.1\os\win32\x86”。然后将“swt-win32-3063.dll”选上,单击“完成”,导入SWT原生包的设置结束。

6.3.3  新建一个SWT类文件

参阅“4.2创建Java项目并运行”所讲方法,新建一个类文件。

1)在“Java”透视图的“包资源管理器”中,右键单击“com.swtdesigner”包,在弹出菜单中选择“新建→其他”,弹出如图6.8所示窗口。

6.8 选择新建的类型

2)选择“DesignerSWTApplication Window”,单击“下一步”,弹出如图6.9所示窗口。

6.9 类文件的设置

3)类的名称填“HelloWorld”,并选择“Create contents in(类代码的生成方式)”为第三项“public static main() method”(第三项生成的代码结构最简单),弹击“完成”。Eclipse将自动生成HelloWorld.java的代码,代码如下(注释为笔者手工加入):

package com.swtdesigner; //包名

import org.eclipse.swt.widgets.Display;//程序所用到的类都会用import标记在这里,

import org.eclipse.swt.widgets.Shell;    //import的快捷键 Ctrl+Shift+O

public class HelloWorld {  //一个标准的JavaHelloWorld

    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的布局(3.5节将讲到布局的内容)

l           创建Shell中的的组件(注:本例还没有加入组件,只是一个空窗口)

l           open()方法打开Shell窗口

l           写一个事件转发循环

l           销毁display

6.3.4  在主窗口加入一个文本框组件

如果运行HelloWorld.java,它还仅是一个空荡荡的主窗口。我们利用SWT Designer将一个SWT的文本框组件加入到主窗口中,操作步骤如图6.10所示。

6.10 将文本框加入到主窗口的操作示意图

图中所示的操作步骤用文字描述如下:

1)先将编辑器最大化。然后单击Eclipse的左下角的“Design”选项页,则编辑器由代码视图变成设计视图。

2)选择SWT组件栏中“SWT Controls”分类下的“Text”组件,然后在主窗口上单击,将Text框放入。注意这里不是通常的将组件拖入到窗口。

3)转到属性窗口,在“text”项里填写“HelloWorld”。单击Eclipse左下角的“Source”返回到编辑器的代码视图,代码如下:

package com.swtdesigner;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

import org.eclipse.swt.SWT;

import org.eclipse.swt.widgets.Text;

public class HelloWorld {

    public static void main(String[] args) {

        final Display display = Display.getDefault();

        final Shell shell = new Shell();

        shell.setSize(327, 253);

        shell.setText("SWT Application");

        //------------------新插入的界面核心代码------------------------

        Text text = new Text(shell, SWT.BORDER); //新建一个text对象

text.setText("HelloWorld"); //text文本框设置初始文字HelloWorld

        text.setBounds(88, 94, 100, 25); //设置文本框的位置和大小,(x轴坐标,y轴坐标,宽度,高度)

        //------------------END---------------------------------------------

        shell.layout();

        shell.open();

        while (!shell.isDisposed()) {

            if (!display.readAndDispatch())

                display.sleep();

        }

    }

}

6.3.5  运行HelloWorld.java

选择主菜单“运行→运行方式→Java应用程序”,运行界面如图6.11所示:

6.11 HelloWorld的第一次运行界面

以上的程序例子还是比较简单的,如图6.12所示,给出一个稍微标准些的界面,并给出了各类和界面之间的对应关系。注:在SWTcheck框(复选框)也是一种Button

6.12  界面和类之间的对应关系图

其中DisplayShell的谱系图如图6.13所示,GroupButton3.3节有介绍。

6.13  DisplayShell的谱系图

  关于SWT/JFace例程的说明

由于SWT/JFace应用程序例子的整体代码结构都基本一样,如下:

package com.swtdesigner;

import org.eclipse.swt.widgets.Display;

import org.eclipse.swt.widgets.Shell;

import org.eclipse.swt.SWT;

import org.eclipse.swt.widgets.Text;

public class HelloWorld {

    public static void main(String[] args) {

        final Display display = Display.getDefault();

        final Shell shell = new Shell();

        shell.setSize(327, 253);

        shell.setText("SWT Application");

        //----------------新插入的界面核心代码----------

…………

//----------------END------------------------

        shell.layout();

        shell.open();

        while (!shell.isDisposed()) {

            if (!display.readAndDispatch())

                display.sleep();

        }

    }

}

为了节省篇幅,以后的例子一般都会省略上面代码框架前后部份,只给出中间省略号处的核心代码,要想得到完整的代码请查阅本书随书光盘中的例程。

6.5  实践建议

SWT Designer还无法完成所有的界面设计工作,所以在界面开发中依然是以手工写代码为主,而且手写代码某些时候比界面拖拉操作更快捷。以下是笔者在使用SWT Designer开发界面时的基本流程:

l           新开一个临时的Application文件,用SWT Desiger快速做好开发所需要的部份界面。

l           将自动生成的代码移植到正式项目中,进行手工修改和代码精简。

另外,由于SWT Designer不是很稳定,所以在使用时还应注意:

l           不要在界面中加入太多组件。

l           不要频繁的移动组件,或者删除又添加组件,否则很可能因为内存耗尽而死机。

6.6  本章小结

本章主要介绍了SWT的一些基本知识,并且用SWT Designer开发出了本书的第一个SWT程序。通过这章的学习,读者对SWT有一个初步的认识,并了解到了如何用SWT Designer来开发SWT程序。

posted on 2007-03-26 10:52 虚无缥缈 阅读(4128) 评论(0)  编辑  收藏 所属分类: Eclipse


只有注册用户登录后才能发表评论。


网站导航: