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

8 篇文章 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导入进来。当然你可以有自己的做法。

图 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所示

图 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的运行结果:

图 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”项目依然可以继续使用的,但必须将SWT、JFace包及一些相关的包引用到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)选择“Designer→SWT→Application 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 {  //一个标准的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的布局(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所示,给出一个稍微标准些的界面,并给出了各类和界面之间的对应关系。注:在SWT中check框(复选框)也是一种Button。

图6.12  界面和类之间的对应关系图
其中Display和Shell的谱系图如图6.13所示,Group和Button在3.3节有介绍。

图6.13  Display和Shell的谱系图
  关于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程序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值