看板java
标 题[doc] Hello SWT :: 写你的第一只SWT程式
发信站SayYA 资讯站 (Tue Mar 28 12:53:22 2006)
转信站ptt!ctu-reader!news.nctu!SayYa
/*
* Date: 2005/05/27
* Program: Hello SWT
*/
import org.eclipse.swt.widgets.*;
public class SWTHello {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setSize(400, 300);
shell.setText("Hello SWT");
shell.open();
while (!shell.isDisposed())
if (!display.readAndDispatch()) {
display.sleep();
}
display.dispose();
}
}
这是一个简单的示范,虽然他用了老套的Hello World,但个例子小巧且完整。
依Java语言命名惯例,大写的为类别,撇开一些与SWT无关的类别。从程式的上
方往下浏览,依序看到的新类别为:Display与Shell。这二个类别是撰写SWT时
至少应含有的类别。
Display类别是用来连系SWT程式与底层作业系统。负责处理执行绪间的通讯与
作业系统事件回圈的控制。通常一个SWT程式,只需要一个Display类别。用一
个Display建立SWT程式,用毕後呼叫dispose 方法释放系统资源。若你有意让
SWT写出来的GUI 以多执行绪的方式执行,才会需要用以多个Display类别[2]。
Shell 类别本身代表一个视窗,由作业系统的视窗管理员所控制。程式中第一
个建立出来的Shell实体,需指定给Display实体成为其子元件[3]。而Shell也
能成为Shell的元件,例如:隶属於一个"视窗"的"对话方块"。 视窗与对话方
块都是建筑在Shell之上的。Shell身为一个视窗,所以你可以期待他提供这些
功能:移动视窗,改变视窗大小,视窗最大化及视窗最小化。
这个例子仅使用了SWT 所提供的二个类别,但却是最重要的二个。若不明白这
二个类别所代表的意义与功能,SWT 程式的撰写只像是每次放了二颗石头在固
定的位置罢了。最後,以一个message loop来取得触发的事件
[1] 由reference翻过来的,我也看不太懂XD
[2] 可参阅Standard Widget Toolkit Reference之Threading issues。
[3] "Top level shells are those that are created
as a child of the display"
手册没有写"元件" 但是不知怎麽描述才好>"<
*. Standard Widget Toolkit Reference可由Eclipse使用手册中寻得
http://help.eclipse.org/help30/index.jsp
?topic=/org.eclipse.platform.doc.isv/guide/swt.htm
--
我所追求的纯粹只是任性,完全的任性。 -- 挪威的森林
--
※ Origin: SayYA 资讯站 <bbs.sayya.org>
◆ From: 163.26.34.20
◆ Modify: 06/03/28 12:53:22 <163.26.34.20>