第一节 SWT版的“Hello, World”
新手总是渴望向代码世界致意。本章,将引导您创建第一个SWT程序——那个不可避免的“Hello, World”。它阐释了SWT如何工作,并贯穿了以后使用的主要的SWT对象。它还会谈论SWT控件的生命周期。
在前一章的BlankWindow基础上,做一点小小的修改,就可以把他转变成规范的“Hello World”程序。具体来说说,先创建一个org.eclipse.swt.widgets.Label的对象,把它的文本(text)设为想要的内容,然后把这个label(标签)添加到窗体。下面的代码反映了这些变化:
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Label;
import org.eclipse.swt.SWT;
public class HelloWorld
{
public static void main(String[] args)
{
Display display = new Display();
Shell shell = new Shell(display);
Label label = new Label(shell, SWT.CENTER);
label.setText("Hello, World");
label.setBounds(shell.getClientArea());
shell.open();
while (!shell.isDisposed())
{
if (!display.readAndDispatch())
{
display.sleep();
}
}
display.dispose();
}
}
编译和运行
编译HelloWorld.java的方法与前章所述基本相同。从现在开始,我们不再给出如何编译和运行的详细步骤,除非与前章例子有很大的区别。
从命令行编译和运行程序变得枯燥和容易出错了。为了重点谈论这个话题,我们提供了一个Ant build配置文件,它对本书的所有程序都是适用的。要编译和运行程序,把build.xml复制到代码所在的目录,然后运行Ant,要指明主类(main class)的名称。例如编译和运行HelloWorld程序,输入:ant –Dmain.class=HelloWorld。如果仅仅是编译程序,可以忽略属性main.class,不过要指出编译目标,如:ant compile。
清单3-1给出了贯穿本书SWT部分的Ant bulid文件的内容
清单3-1 build.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<project name="GenericSwtApplication" default="run" basedir=".">
<description>
Generic SWT Application build and execution file
</description>
<property name="main.class" value=""/>
<property name="src" location="."/>
<property name="build" location="."/>
<!-- Update location to match your eclipse home directory -->
<!-- eclipse的目录 -->
<property name="ecl.home" location="c:\eclipse"/>
<!-- Update value to match your windowing system (win32, gtk, motif, etc.) -->
<!-- 视窗系统 (win32, gtk, motif, etc.) -->
<property name="win.sys" value="win32"/>
<!-- Update value to match your os (win32, linux, etc.) -->
<!-- 操作系统 (win32, linux, etc.) -->
<property name="os.sys" value="win32"/>
<!-- Update value to match your architecture -->
<!-- 体系架构 -->
<property name="arch" value="x86"/>
<!-- Update value to match your SWT version -->
<!-- SWT版本 -->
<property name="swt.ver" value="3.0.0"/>
<!-- Do not edit below this line -->
<!-- 以下请勿修改 -->
<property name="swt.subdir"
location="${ecl.home}/plugins/org.eclipse.swt.${win.sys}_${swt.ver}"/>
<property name="swt.jar.lib" location="${swt.subdir}/ws/${win.sys}"/>
<property name="swt.jni.lib" location="${swt.subdir}/os/${os.sys}/${arch}"/>
<path id="project.class.path">
<pathelement path="${build}"/>
<fileset dir="${swt.jar.lib}">
<include name="**/*.jar"/>
</fileset>
</path>
<target name="compile">
<javac srcdir="${src}" destdir="${build}">
<classpath refid="project.class.path"/>
</javac>
</target>
<target name="run" depends="compile">
<java classname="${main.class}" fork="true" failonerror="true">
<jvmarg value="-Djava.library.path=${swt.jni.lib}"/>
<classpath refid="project.class.path"/>
</java>
</target>
</project>
您必须对build.xml文件中做了标注的地方进行修改:Eclipse的目录,视窗系统,操作系统,体系架构和SWT版本。
运行这个程序会显示一个向世界致意的窗口,如图3-1所示。
什么是Ant?
Ant,Apache Jakarta工程(http://jakarta.apache.org/)的一部分,是java的“make”工具。作为Java Pro 2003 Readers' Choice Award for Most Valuable Java Deployment Technology(读者评选的最有用的Java开发技术)的得主,它简化了Java程序的生成过程(build process),并成为Java生成工具(build utility)的工业标准。
不同于使用传统的“make”文件,Ant使用XML配置文件生成程序。要生成(build)Java程序,先创建一个XML文件指明文件、依存关系、生成规则,再运行Ant。默认地,Ant会搜索文件build.xml,但您也可以告诉Ant使用其它的文件。您还可以向指明属性和目的地。
下载Ant以及获得更多的信息,请访问http://ant.apache.org/