<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,  comments - 11,  trackbacks - 0

    SWT程序

    SWT是一套獨立的庫,用戶可以在SWT的基礎上很容易地建立自己的應用,本節的目的就是要在SWT上建立一個簡單的“Hello world”程序,讀者可以在這個簡單的程序上建立自己的應用。

    加入SWT依賴的包

    SWT為用戶提供了一套API,用戶如果要使用SWT進行開發,必須要把所需的Jar包放在Eclipse項目的ClassPath中。在此筆者采用新建一個插件項目,插件項目會自動引用SWT相關的包,步驟如下。

    1. 運行Eclipse。
    單擊“File”→“New”→“Other”菜單項,在彈出的對話框中選擇 Select 對話框左邊的 Plug-in Development 向導。如圖3所示,選擇 Plug-in Project。


    圖3 新建插件對話框


    2. 單擊“Next”按鈕,彈出新建對話框,輸入項目名稱。此處使用了“com.free.swtjface.demo”。單擊“Next”按鈕后彈出新建對話框頁,如圖4所示。


    圖4 新建項目


    3. 單擊“Next”按鈕,在接下來的對話框中單擊“Finish”按鈕,建立一個空的插件項目在此項目中,Eclipse中已經自動引入了此插件所需要依賴的包,其中包括SWT/JFace所用到的包如圖5所示。


    圖5 插件依賴的包


    如果用戶想加入SWT/JFace相關的包,也可以手動加入下面幾個包“org.eclipse.swt.win32. win32.x86_*.jar”、“org.eclipse.swt_*.jar”和“org.eclipse.jface_*.jar”到插件的類路徑中。

    提示:對于初學者,通過創建插件項目自動引入SWT的jar包是一個比較好的方法,如果開發插件項目,用戶也不用但心SWT的jar包沒有引入的問題。

    “Hello world”SWT程序

    現在SWT所依賴的包已經加入到了項目的ClassPath中,SWT程序和Java的程序一樣,也是通過main函數運行的,如例程1所示。

    例程1 HelloWorldSwt.java

    public class HelloWorldSwt { public static void main(String[] args) { Display display = new Display(); Shell shell = new Shell(display); shell.setText("hello world! Window"); shell.open(); while (!shell.isDisposed()) { if (!display.readAndDispatch()) { display.sleep(); } } display.dispose(); } }

    這段程序雖然很簡單,但是它反映了書寫SWT程序的步驟:
    1. 創建一個Display對象。Display對象是SWT和操作系統通信的橋梁。
    2. 創建一個或者多個Shell對象。可以認為Shell代表了程序的窗口。
    3. 在Shell內創建各種部件(widget),如按鈕、下拉框和列表等。
    4. 對各個部件進行初始化(外觀、狀態等),同時為各種部件的事件創建監聽器 (listener)。監聽器可以監聽窗口的消息,在此沒有添加監聽器,將會在后面的章節重點介紹監聽器的注冊。
    5. 調用Shell對象的open()方法以顯示窗體。
    6. 對各種事件進行監聽并處理,直到程序發出退出消息。
    7. 調用Display對象的dispose()方法以結束程序。

    提示:SWT程序的運行和例程1類似,讀者如果不清楚SWT程序的運行機制,可以直接復制上面的樣板代碼就可以了。

    運行SWT應用

    SWT程序的運行要通過JNI調用相應的操作系統控件,運行SWT程序和運行Java應用程序有點不同,在Eclipse中用戶可以選擇運行SWT程序(SWT Application)可以運行SWT程序,步驟如下:
    1. 打開Java的默認視圖,在“Hello world”程序的文件上單擊鼠標右鍵。
    2. 選擇“SWT Application”菜單,如圖6所示。


    圖6 運行SWT程序


    3. 單擊“SWT Application”菜單運行,運行效果如圖7所示。


    圖7 SWT“Hello world”程序


    HelloWorldSwt程序只創建了一個窗口(shell),讀者可以把shell當作其它組件的父窗口,創建其它組件。

    提示:在Eclipse3.3以后,運行SWT程序和運行Java程序是一樣的。

    JFace程序

    JFace 是一個用戶界面工具箱,它提供很難實現的、用于開發用戶界面功能部件的 helper 類,JFace 在原始的窗口小部件系統的級別之上運行。JFace 使用戶可以專注于實現特定插件的功能,而不必花費精力來處理底層窗口小部件系統或者解決幾乎在任何用戶界面應用程序中都很常見的問題。

    “Hello world”JFace程序

    JFace的應用程序相對來說更簡單,它通過“ApplicationWindow”類實現應用,“ApplicationWindow”把和操作系統交互的細節封裝起來了,用戶只需要關心自己窗口的建立,程序代碼如例程2所示。
    例程2

    public class HelloWorldJFace extends ApplicationWindow { public HelloWorldJFace() { super(null); } protected Control createContents(Composite parent) { getShell().setText("hello world! Window"); parent.setSize(400, 250); return parent; } public static void main(String[] args) { HelloWorldJFace helloWorldApp = new HelloWorldJFace(); helloWorldApp.setBlockOnOpen(true); helloWorldApp.open(); Display.getCurrent().dispose(); } }

    其中,JFace的應用程序可以通過重載“createContents(Composite parent)”方法添加窗口的組件到parent組件中。
    運行JFace的程序和運行SWT程序一樣。

    Tags:java,rcp,jface,swt,ibm,eclipse,ui,gui

    posted on 2008-05-04 18:35 jadmin 閱讀(136) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲尹人九九大色香蕉网站| 亚洲精品专区在线观看| 成人无码a级毛片免费| 亚洲成?v人片天堂网无码| 国产精品日本亚洲777| 免费观看国产小粉嫩喷水| 污污的视频在线免费观看| 亚洲国产精品一区二区第四页 | 在线A亚洲老鸭窝天堂| 国产成人精品免费视频大全| 久久影院亚洲一区| 免费国产成人18在线观看| 久久久久无码精品亚洲日韩| 精品无码人妻一区二区免费蜜桃| 亚洲五月激情综合图片区| 69式国产真人免费视频 | 亚洲春色在线观看| 一级做a爰片久久免费| 岛国av无码免费无禁网站| 亚洲精品无码成人| 亚洲区小说区图片区| 久久免费线看线看| 亚洲免费黄色网址| 国产一级特黄高清免费大片| 国产在线精品一区免费香蕉| 亚洲卡一卡2卡三卡4卡无卡三| 亚洲免费福利在线视频| 特级一级毛片免费看| 亚洲AV色香蕉一区二区| 四色在线精品免费观看| 成人免费av一区二区三区| 亚洲精品国产手机| 免费在线一级毛片| 精品无码国产污污污免费网站| 亚洲av永久无码精品网址| 亚洲成AV人片在线观看无| 国内免费高清在线观看| 你懂的网址免费国产| 亚洲一本一道一区二区三区| 亚洲精品无码专区久久久| 成人无码区免费视频观看|