现在的位置: 首页 > 综合 > 正文

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

2013年09月16日 ⁄ 综合 ⁄ 共 9189字 ⁄ 字号 评论关闭
 

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
 
这个好像原来是为了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的话,你可能注意到在eclipseplugins目录下还有一个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,然后在出现的对话框中选择configuration details按钮,你可以在接下来出现的对话框中找到java.library.path Platform
配置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包的下面。类的内容如下:

 1package swtjfacesample;
 2
 3import org.eclipse.swt.SWT;
 4import org.eclipse.swt.widgets.Display;
 5import org.eclipse.swt.widgets.Shell;
 6import org.eclipse.swt.widgets.Text;
 7
 8public 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

关于这段代码的内容,我们会在下面的内容中进行详细介绍。现在我们可以尝试着运行一下,确定已经编译完成后从eclipsePackage 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”项目依然可以继续使用的,但必须将SWT、JFace包及一些相关的包引用到Java构建路径中,手工一步步做这个工作太过于繁锁。有一个简单的方法:借助SWT Designer新建项目时保存在.classpath文件中的库引用,将其复制粘贴到myproject的.classpath中即可。
(2)当编写Java程序时,笔者认为“Java”透视图要比默认的“资源”透视图好用,主要是因为前者的包显示不是树状的,用起来较方便。但选择哪一种透视图,还是要看各人的习惯和喜好。本书以后的所讲内容将统一使用“Java”透视图。
想要运行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原生包的设置结束。
参阅“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
如果运行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();
        }
    }
}
选择主菜单“运行→运行方式→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程序。
 
本文收集自网上:
  

抱歉!评论已关闭.