Eclipse下配置swt开发环境

现在真的是落伍了,直到现在我才知道什么是swt以及swt是干什么的。这两天有时间搞了一下,感觉还是很不错的,这篇文章主要是记录如何安装和配置swt。都是别人写过多少遍的文章了,虽然内容类似,但是我还是希望能用自己的语言记录下来。

第一步:下载并安装swt。

SWT下载地址:http://www.instantiations.com/windowbuilderpro/

注册机下载地址:http://www.itpub.net/714132.html

第二步:安装swt,安装的过程相对简单,下一步下一步就可以。注册机的使用方法大家也自己琢磨一下吧,写起来实在是很累;

第三步:配置SWT环境。如果要在Eclipse下使用SWT,还必须在Eclipse中加入swt的JAR包,不然即使能使用SWT设计界面,但是在程序运行的时候就会报ClassNotFound的错误。配置时,在Eclipse的界面中,点击“windows/Prefernces",在左侧的列表中依此点击java/installed JRES节点,此时右侧界面应该出现当前所使用的JDK,选择当前使用的JDK,然后点击EDIT按钮,在点击AddExternal JARs按钮,在文件选择对话框中将如下JAR包加进来:

如果Eclpse的plugins目录为D://MyEclipse Enterprise Workbench 5.1.0 GA/eclipse/plugins,则需要加入的jar包为:

org.eclipse.swt.win32.win32.x86_ 3.2.1 .v3235.jar

org.eclipse.swt_ 3.2.1 .v3235e.jar

org.eclipse.core.commands_ 3.2.0 .I20060605-1400.jar

org.eclipse.jface.text_ 3.2.1 .r321_v20060810.jar

org.eclipse.jface_ 3.2.1 .M20060908-1000.jar

org.eclipse.equinox.common_ 3.2.0 .v20060603.jar

以上五个jar包必须一个不少的都加进来,如果少一个,则会出现SWT无法运行或出错的情况。

最后一步,注册DLL文件。在SWT插件目录下有一个dll文件,我本机上的文件名是swt-win32-3235.dll如果使用的版本不一样,那么有可能会导致文件名不同,但是都是swt-win32-*.dll的格式,将该文件复制到c:/window/system32下,然后在CMD中运行regsvr32 [文件目录]swt-win32-3235.dll,注意regsvr32后面要有一个空格,回车后应该提示注册成功。网上有文章说只要复制到system32下就可以,但是在我的机器上必须注册后才能使用,可能操作上有区别吧。

[2008-4-13更新]:在完成以上步骤后,如果仍然提示找不到swt的包,那么请检查一下所使用的JDK,特别是对于使用myeclipse的朋友,依此点击windows—preferences—Java—install JARs,看一看所使用的JDK版本,如果是myeclipse的话,会默认选择weblogic下的JDK,把JDK换成你本机的就行,例如我本机的就是C:/j2sdk1.4.2_06。

当以上工作完成后,SWT的安装过程就完成了。下面我们可以开始第一个swt程序了。

首先在ECLIPSE中点击新建——PROJECTS,应该能看到列表中有一个designer节点,选择SWT项目;

然后在该项目上新建一个windows application,方法是在工程节点上点击右键,就可进行选择;

这时就可以设计GUI界面了,左侧是组件面板,具体组件的作用大家自己查资料吧,因为我也是刚接触。

首先将一个button组件拖到面板中,所有属性设置为默认。、

在面板中点击该按钮对象,然后在左侧的组件面板中点击event页签,下面显示的是事件列表,选择其中的select节点,选择wigdeselect事件,大家可以把该事件理解为awt.event的actionlistener。双击该名称右侧的文本框。这时会切换到source界面;在代码界面中写入对事件的处理:

MessageDialog.openInformtation(shell,””,”你好,这是一个swt的演示程序”);

输入后按ctrl+shift+o,让eclipse自动导入所需要的包

如果之前没有导入org.eclipse.jface.text_3.2.1.r321_v20060810.jar和org.eclipse.jface_3.2.1.M20060908-1000.jar的话,会导致该事件处理不可用。

完成后,点击左上角的“test designer windows”可以查看设计的界面,注意,该界面是一个预览的界面,事件处理和其他处理逻辑是不起作用的。

完成后,在eclipse中run一下,就能看到效果。

在我使用的过程中还碰到了一些稀奇古怪的错误,在这里列出来,希望能给大家提供参考:

1、点击run时就弹出错误提示框,错误信息为:Fatal exception occurred Program will exit.同时控制台报错:

java.lang.UnsatisfiedLinkError: no swt-win32-3236 in java.library.path
 at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1517)
 at java.lang.Runtime.loadLibrary0(Runtime.java:788)
 at java.lang.System.loadLibrary(System.java:834)
 at org.eclipse.swt.internal.Library.loadLibrary(Library.java:123)
 at org.eclipse.swt.internal.win32.OS.<clinit>(OS.java:18)
 at org.eclipse.swt.widgets.Display.<clinit>(Display.java:125)
 at test.main(test.java:17)

出现这个问题的话,就把swt-gdip-win32-3236.dll和swt-win32-3236.dll拷贝到C:/j2sdk1.4.2_06/jre/bin目录下即可;

2、如果运行程序时能出来SWT界面,但是点击按钮时控制台报错,并提示:java.lang.NoClassDefFoundError: org/eclipse/core/commands/common/EventManager
 at org.eclipse.jface.resource.JFaceResources.getFontRegistry(JFaceResources.java:267)
 at org.eclipse.jface.window.Window.createShell(Window.java:503)
 at org.eclipse.jface.window.Window.create(Window.java:425)
 at org.eclipse.jface.dialogs.Dialog.create(Dialog.java:1124)
 at org.eclipse.jface.window.Window.open(Window.java:785)
 at org.eclipse.jface.dialogs.MessageDialog.openInformation(MessageDialog.java:346)
 at test$1.widgetSelected(test.java:28)
 at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:90)
 at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:66)
 at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:928)
 at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3348)
 at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2968)
 at test.main(test.java:35)

这个问题的原因是缺少org.eclipse.core.commands_3.2.0.I20060605-1400.jar,解决方法是在Install JARs界面中将该jar包加进来,目录是./eclipse/plugins/org.eclipse.core.commands_3.2.0.I20060605-1400.jar。添加完毕后不用重启eclipse,再次执行程序就能正确运行。其实我一直很奇怪第一次配置swt的时候没加这个jar,程序竟然也能运行通过,这个世界真是太奇妙了,呵呵。

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

低音钢琴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值