5. 在Eclipse外运行SWT应用程序要在不使用Eclipse的环境下运行SWT应用程序,swt.jar库必须在classpath中,并且java.library.path环境变量必须正确设置。根据主机平台,必须有合适的本地库存在。对于Windows平台,你可以根据如下来完成本地库的配置:
把swt.dll放在和程序相同的文件夹下。
把swt.dll放在JAVA_HOME\bin\文件夹下。
把swt.dll放在c:\windows\system32文件夹下。
javac -classpath c:\swt\swt.jar HelloWorld.javaJava -classpath c:\swt\swt.jar;. -Djava.library.path=c:\swt HelloWorldjava.library.path是JNI必需的环境变量。如果你没有设置这个环境变量。你的DLL 类是不能访问的。在这种情况下,应用程序不能正常的运行,并会抛出异常。
SWT库
Swt库存在于Eclipse的plug-in目录下。如果你想不下载整个Eclipse包而获得SWT库,你可以在http://www.eclipse.org/downloads目录下单独下载这个SWT库。
6. SWT包(Packages)
SWT主要由下列包组成。这些包的定义是从Eclipse的API文档上得到的。你可以在Eclipse的网站上获得整个API文档。org.eclipse.swt: 包含了定义了SWT需要使用的常量和异常的类。这个包由三个类组成:SWT, SWTException和SWTError。SWT类可能是最受欢迎的类,因为它包含了SWT库所需要的常量如键盘、错误、颜色、布局、文本样式、按钮等常量。org.eclipse.swt.widgets: 包含了大多数核心SWT窗口组件,包括支持的接口和类。org.eclipse.swt.events: 定义了SWT组件使用的typed events, listeners和events。这个包有三组不同的类:Listener接口,Adapter类和Event类。org.eclipse.swt.dnd: 包含了对SWT窗口组件拖放(drag-and-drop)支持的类。org.eclipse.swt.layout: 包含了提供对SWT窗口组件自动安置和大小控制的类。org.eclipse.swt.print: 包含了对SWT窗口组件提供打印支持的类。org.eclipse.swt.graphics: 这个包提供了实现基本绘图操作需要的点,长方形、区域,颜色,光标,字体,图像上下文(GC)等的类和包含了显示图像代码和载入/保存他们的公有API的图像类。
7. 对话框
对话框的实现是本地的。也就是说,对话框像窗口组件一样是平台组件。SWT的Dialogs是从Dialog抽象类继承的。对话框不是窗口组件但是他可以容纳窗口组件。
图 2. Dialog类层次图.
SWT有不同类型的对话框。有些对话框具有特殊的属性。Dialog类可以如源代码 2中使用。
源代码2. MessageBox例子
MessageBox messageBox =
new MessageBox(shell, SWT.OK|SWT.CANCEL);
if (messageBox.open() == SWT.OK)
{
System.out.println("Ok is pressed.");
}