[doc] Hello SWT :: 寫你的第一隻SWT程式
/*
* 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>
java 近期熱門文章
PTT數位生活區 即時熱門文章
105
152