开发环境Eclipse3.2,英文版。
SWT(Standard Widget Toolkit),标准窗口小部件工具包。
本例将创建第一个SWT程序。本实例是一个简单的界面,在窗口显示【hello,SWT】字样。
Display负责监管CPU资源并管理和操作系统的通信,关注窗口的显示、移动、重画,确保鼠标的点击、键盘的敲击等事件送达到小部件并去处理他们。Display类是不可见的。
Shell类扮演GUI主窗口的角色。一个Shell实例是一个可视化的应用,对主窗口的打开,激活,最大化,最小化和关闭保持追踪。Shell类的主函数为整合GUI内的容器、小部件和事件提供一个通用的接入点。
实例包括3部分:
1. 新建一个项目名为“SWT”的项目。
2. 引入SWT包
要编写SWT程序,需要引入SWT的jar包。在完整的Eclipse开发环境中才能得到SWT包。它作为一个插件的形式存在。在Eclipse 3.2中它路径是eclipse-SDK-3.2-win32\plugins;
插件名为org.eclipse.swt.win32.win32.x86_3.2.0.v3232m.jar。
(1) 右击【SWT】项目,选择【Properties】—— 弹出【Properties for SWT】 对话框
(2) 在左侧列表中选择【Java Build Path】—— 选择【Libraries】选项卡—— 选择【Add Variable】—— 弹出【New Variable Classpath Entry】 对话框
(3) 点击【Configure Variables】—— 弹出【Preferences】对话框
(4) 点击【New】—— 弹出【New Variable Entry】
(5) 在【Name】中键入“SWT_LIB”——单击【File】,弹出【JAR Selection】,选择org.eclipse.swt.win32.win32.x86_3.2.0.v3232m.jar。单击【OK】,返回上级,依次单击【OK】
(6) SWT_LIB 变量就放入了【Properties for SWT】 对话框的【JARs and class folders on the build path】中。
3. 编写程序
HelloSWT
import org.eclipse.swt.widgets.*;
import org.eclipse.swt.layout.*;
import org.eclipse.swt.*;
public class SimpleForm
{
public static void main(String args[])
{
Display display = new Display(); //创建 Display 实例
Shell shell = new Shell(); //创建Shell 实例
shell.setText("Window"); //设置窗口显示标签
shell.setBounds(200,200,500,350); //设置shell的显示范围
//设置窗口布局
FormLayout layout = new FormLayout();
layout.marginHeight = 50;
layout.marginWidth = 50;
shell.setLayout(layout);
//创建标签
Label helloLab = new Label(shell,SWT.CENTER);
helloLab.setText("Hello , SWT");
shell.pack();
shell.open();
//开始事件处理循环,直到用户关闭窗口
while(!shell.isDisposed())
{
if(!display.readAndDispatch())
display.sleep();
}
display.dispose();
}
}
4. SWT调用了操作系统自带的图形库,因此在运行程序的过程时需要指出本机图形库的位置。位于org.eclipse.swt.win32.win32.x86_3.2.0.v3232m.jar包中,为了能够确保这些库文件能够被程序使用,可以将本机图形库放进java.library.path变量所包含的任何目录中。
(1) 解压org.eclipse.swt.win32.win32.x86_3.2.0.v3232m.jar至任意目录中,如:E:\swt目录中。
(2) 右击“SimpleForm.java”文件,依次选择【Run as】|【Run…】命令,弹出【Run】对话框。选择左侧的SWT应用程序,选中 “SimpleForm”,选择【Arguments】选项卡。在【VM arguments】中输入“-Djava.Library.path=E:\swt”。
运行结果: