<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是一套獨(dú)立的庫(kù),用戶可以在SWT的基礎(chǔ)上很容易地建立自己的應(yīng)用,本節(jié)的目的就是要在SWT上建立一個(gè)簡(jiǎn)單的“Hello world”程序,讀者可以在這個(gè)簡(jiǎn)單的程序上建立自己的應(yīng)用。

    加入SWT依賴的包

    SWT為用戶提供了一套API,用戶如果要使用SWT進(jìn)行開(kāi)發(fā),必須要把所需的Jar包放在Eclipse項(xiàng)目的ClassPath中。在此筆者采用新建一個(gè)插件項(xiàng)目,插件項(xiàng)目會(huì)自動(dòng)引用SWT相關(guān)的包,步驟如下。

    1. 運(yùn)行Eclipse。
    單擊“File”→“New”→“Other”菜單項(xiàng),在彈出的對(duì)話框中選擇 Select 對(duì)話框左邊的 Plug-in Development 向?qū)АH鐖D3所示,選擇 Plug-in Project。


    圖3 新建插件對(duì)話框


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


    圖4 新建項(xiàng)目


    3. 單擊“Next”按鈕,在接下來(lái)的對(duì)話框中單擊“Finish”按鈕,建立一個(gè)空的插件項(xiàng)目在此項(xiàng)目中,Eclipse中已經(jīng)自動(dòng)引入了此插件所需要依賴的包,其中包括SWT/JFace所用到的包如圖5所示。


    圖5 插件依賴的包


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

    提示:對(duì)于初學(xué)者,通過(guò)創(chuàng)建插件項(xiàng)目自動(dòng)引入SWT的jar包是一個(gè)比較好的方法,如果開(kāi)發(fā)插件項(xiàng)目,用戶也不用但心SWT的jar包沒(méi)有引入的問(wèn)題。

    “Hello world”SWT程序

    現(xiàn)在SWT所依賴的包已經(jīng)加入到了項(xiàng)目的ClassPath中,SWT程序和Java的程序一樣,也是通過(guò)main函數(shù)運(yùn)行的,如例程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(); } }

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

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

    運(yùn)行SWT應(yīng)用

    SWT程序的運(yùn)行要通過(guò)JNI調(diào)用相應(yīng)的操作系統(tǒng)控件,運(yùn)行SWT程序和運(yùn)行Java應(yīng)用程序有點(diǎn)不同,在Eclipse中用戶可以選擇運(yùn)行SWT程序(SWT Application)可以運(yùn)行SWT程序,步驟如下:
    1. 打開(kāi)Java的默認(rèn)視圖,在“Hello world”程序的文件上單擊鼠標(biāo)右鍵。
    2. 選擇“SWT Application”菜單,如圖6所示。


    圖6 運(yùn)行SWT程序


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


    圖7 SWT“Hello world”程序


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

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

    JFace程序

    JFace 是一個(gè)用戶界面工具箱,它提供很難實(shí)現(xiàn)的、用于開(kāi)發(fā)用戶界面功能部件的 helper 類,JFace 在原始的窗口小部件系統(tǒng)的級(jí)別之上運(yùn)行。JFace 使用戶可以專注于實(shí)現(xiàn)特定插件的功能,而不必花費(fèi)精力來(lái)處理底層窗口小部件系統(tǒng)或者解決幾乎在任何用戶界面應(yīng)用程序中都很常見(jiàn)的問(wèn)題。

    “Hello world”JFace程序

    JFace的應(yīng)用程序相對(duì)來(lái)說(shuō)更簡(jiǎn)單,它通過(guò)“ApplicationWindow”類實(shí)現(xiàn)應(yīng)用,“ApplicationWindow”把和操作系統(tǒng)交互的細(xì)節(jié)封裝起來(lái)了,用戶只需要關(guān)心自己窗口的建立,程序代碼如例程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的應(yīng)用程序可以通過(guò)重載“createContents(Composite parent)”方法添加窗口的組件到parent組件中。
    運(yùn)行JFace的程序和運(yùn)行SWT程序一樣。

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

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

    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产成人精品日本亚洲专区6| 国产亚洲日韩在线a不卡| 亚洲免费网站观看视频| 2017亚洲男人天堂一| 亚洲成a人片在线观看日本麻豆| 中国好声音第二季免费播放| 久久精品国产亚洲AV麻豆网站| 最近2019中文字幕免费看最新| 一个人晚上在线观看的免费视频| 久久精品国产精品亚洲毛片| 日本免费人成视频播放| 手机看片国产免费永久| 日本亚洲免费无线码 | 草久免费在线观看网站| 911精品国产亚洲日本美国韩国| 女人18一级毛片免费观看| 国产精品偷伦视频观看免费| 国产人成亚洲第一网站在线播放| 国产aⅴ无码专区亚洲av麻豆 | 亚洲精品成人网站在线观看| 卡一卡二卡三在线入口免费| 黄网站色视频免费在线观看的a站最新| 在线aⅴ亚洲中文字幕| 亚洲中文字幕在线第六区| 在线中文高清资源免费观看| 无码中文字幕av免费放dvd| 小说专区亚洲春色校园| 老司机亚洲精品影院无码| 亚洲国产精品成人| 国产精品美女午夜爽爽爽免费| 久久九九久精品国产免费直播| 久久亚洲精品国产亚洲老地址| 亚洲AV无码久久精品成人| 成人亚洲综合天堂| 久久亚洲国产午夜精品理论片 | 国内一级一级毛片a免费| 午夜爽爽爽男女免费观看影院| 欧洲精品码一区二区三区免费看| 亚洲日韩国产精品乱-久| 亚洲最大福利视频网站| 亚洲熟妇av一区二区三区|