一個(gè)SWT應(yīng)用程序的基本組成部分為顯示界面(Display)、命令界面(Shell,使命令進(jìn)入并使運(yùn)行初始化)和窗口部件(Widgets)。Display負(fù)責(zé)管理事件循環(huán)和控制UI線程和其他線程之間的通訊。Shell是應(yīng)用程序中被操作系統(tǒng)窗口管理器管理的窗口。每個(gè)SWT應(yīng)用程序至少需要一個(gè)Display和大于等于1個(gè)的Shell實(shí)例。

圖1:從不同的角度看SWT應(yīng)用程序
圖1從不同的角度展示了SWT應(yīng)用程序。左側(cè)的圖是一個(gè)簡(jiǎn)化的UI對(duì)象的繼承圖。中間的圖展示了UI對(duì)象的容器結(jié)構(gòu)(containment structure)。右側(cè)的圖則是創(chuàng)建后的UI外觀。
如果一個(gè)應(yīng)用程序使用了多個(gè)線程,那么每個(gè)線程都使用的是Display對(duì)象分配給它自己的實(shí)例。程序員可以使用靜態(tài)方法Display.getCurent()來得到Display對(duì)象的當(dāng)前活動(dòng)的實(shí)例。
Shell用于在特定的操作系統(tǒng)中表現(xiàn)窗口。Shell可以最大化、最小化或正常化。Shell有兩種類型。第1種是高層shell,它是Display的子窗口,同時(shí)它也是一個(gè)主窗口。第2類是對(duì)話shell,這種shell要依賴于其他的shell窗口存在。shell窗口最終成為上述那種類型,要看在創(chuàng)建shell時(shí)傳遞給shell構(gòu)造函數(shù)的是什么風(fēng)格位(style bits)。一個(gè)shell的默認(rèn)值是DialogShell。也就是說,如果不帶參數(shù),那默認(rèn)就是一個(gè)對(duì)話shell。而如果給參數(shù)賦予了一個(gè)Display對(duì)象,則該shell將是一個(gè)高層shell。
一些窗口部件的屬性必須在創(chuàng)建它們的初期就要被設(shè)置。這些窗口部件的屬性就是前面所說的風(fēng)格位(style bits)。在SWT的類中,風(fēng)格位被定義為常數(shù)。例如,Button button = new Button( shell, <styleBits> )。可以使用或(OR)操作符“|”來設(shè)置多個(gè)風(fēng)格位。例如,如果想設(shè)置一個(gè)帶邊界的壓下按鈕,需要傳遞SWT.PUSH | SWT.BORDER作為風(fēng)格位參數(shù)。
本文來自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/bnlovebn/archive/2011/06/14/6543693.aspx