第三章 第一节 SWT版的“Hello, World”

第一节 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所示。

fig54_01_0

3-1  SWT版的“Hello, World

什么是Ant

AntApache 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/

 

返回目录

posted @ 2011-09-10 19:47  ols  阅读(344)  评论(0编辑  收藏  举报