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

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

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

    豬兒笨笨的文檔

    主要是個人的一些思考和技術文章,還有許多翻譯的文檔

     

    SWT還是Swing

    ?
    ?
    ????我這幾年雖然也做了一些相對底層的開發(fā),如工作流等,但主要精力還是在Java UI上,所以對SWT和Swing相對還比較了解,在這里寫下我對Swt和Swing的一件看法,供朋友參考。
    ????
    ????這個問題放在三年前,根本不是一個問題,那個時候的Eclipse用戶還比較少,而離開Eclipse的SWT也很難進行獨立開發(fā),因此開發(fā)UI,仍然是Swing的天下。
    ????但是自從基于SWT的RCP正式提出以后,對于Java UI的開發(fā)者卻不得不面對這樣一個問題,SWT還是Swing。
    ????其實對于這樣的比較,對Swing是有一些不公平的,因為用SWT開發(fā)較大的程序,肯定會用到JFace,RCP,這樣就好比是用C++與MFC來比較如何寫窗口程序一樣。嚴格說起來,應該是Eclipse的RCP和Spring的RCP進行比較才對。但是Spring的RCP我還沒有多少使用經驗,所以只好先進行一些不太公正的比較了,簡單談談SWT和Swing的選擇。
    ?
    ????擴展性問題:
    ?
    ????Swing是Sun在AWT失敗后重新設計的UI,它不再直接調用本地接口,而是采用自己的UI接口處理一切圖形繪制。這樣做的結果很明顯,它的Swing結構采用的MVC結構非常清楚而且很容易擴展,目前已經有許多漂亮的Swing組件, 但是對于新手級的程序員,要使用一些復雜的控件,如JTable,JTree,還是要花上很多時間學習的。但Swing的問題還是很多,象圖形繪制速度慢,有時刷新有問題,線程處理好象也有些問題。
    ????Swt是通過控件接口來調用本地API的控件,這樣可以獲得最本地化的外觀效果,但是由于它是嚴重依賴于本地操作系統(tǒng)提供的控件,而且進行擴展的時候,要針對不同的操作系統(tǒng)進行測試,工作量很大,象我用的KTable在Linux下就有幾個問題。這也是SWT控件嚴重缺乏的原因之一,還好Eclipse最近也成立新的項目組來開發(fā)Swt控件,相信不久以后會有好消息。
    ?
    ????上手問題:
    ?
    ????如果說上手,我從上想到下,還是覺得SWT更快一些。象JTable,我?guī)У膸讉€實習生,研究了一周還不明白怎么用,但是換成Swt,不到三天,就可以照著寫程序了。因為Swt提供的是簡單易用的API,而要用Swing,首先要明白Swing的結構,對于一般的程序員來說,自然是前者快一些了。
    ????如果大家對些有懷疑的話,有空可以去www.java2s.com上去看一看用Swt和Swing分別寫一個Table,哪一個的API更容易理解。
    ????不過SWT的資源管理確實是一個很大的問題,對于新手而言,結果可能是致命的,有得必有失。
    ?
    ????框架問題:
    ????
    ????框架也正是我前面說的不公平問題,Eclipse的Platform和RCP都已經提供了很好的開發(fā)框架,如Perspctive和View,Editor,PropertyEditor等。但Swing還沒有一個很好的免費的框架,商用的有。因此拿這兩者比較還是有失公平的。更不用說Eclipse還提供了很好的擴展機制和國際化處理。
    ????現在好象Netbeans也提供了一部分框架的東西,而Spring的RCP也開始初現頭角,不過領跑了一年的Eclipse RCP,Netbeans和Spring還是要努力的。
    ?
    ?
    ????如果一個公司要做一個長期的產品,我只能說Swing在很大程序上還優(yōu)于SWT,這個優(yōu)于不是指性能,而是指API的穩(wěn)定性。從Eclipse2-3.2,長期使用Eclipse的朋友最頭疼的可能就是習慣的插件無法運行在新的Eclipse上。而Swing的API相對就穩(wěn)定的多。
    ????當然這里不是絕對不用SWT的,你可以可以在Swt中使用Swing,象Borland的Together for eclipse就是一個最好的例子,這樣的結果就是我Eclipse3.0時使用的Community Version Together,在Eclipse3.1.2運行的很好,當然Borland這樣做的原因之一也是因為它同時要提供JBuilder的Together,所以Swing是個唯一的選擇,但是GEF的API不是很穩(wěn)定,可能也是Borland放棄GEF的原因,使用了SWT+Swing的概念。
    ????最后說一句,無論哪種比較,都只是片面的,還是要根據自己的情況選擇合適的UI平臺。
    ?
    ????
    ????????

    posted on 2006-04-16 21:40 豬兒笨笨 閱讀(2260) 評論(0)  編輯  收藏 所屬分類: Java開發(fā)


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


    網站導航:
     

    導航

    統(tǒng)計

    常用鏈接

    留言簿(18)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 四虎在线免费播放| 亚洲精品免费在线观看| 国产成人A在线观看视频免费| 亚洲网址在线观看你懂的| 久久青草精品38国产免费| 亚洲国产精品lv| 在线看片免费人成视久网| 亚洲国产高清在线| 免费h片在线观看网址最新| 亚洲人成电影青青在线播放| 免费影院未满十八勿进网站| 亚洲国产日韩精品| 破了亲妺妺的处免费视频国产 | 久久精品国产亚洲AV无码娇色| 两个人看的www免费| 亚洲av午夜福利精品一区| 18未年禁止免费观看| 最新亚洲卡一卡二卡三新区| 色www永久免费视频| 无码人妻一区二区三区免费视频 | 美女又黄又免费的视频| 国产偷国产偷亚洲高清日韩| 国产啪精品视频网站免费尤物| 久久亚洲精品成人AV| 女人让男人免费桶爽30分钟| 特级aa**毛片免费观看| 亚洲欧洲国产精品香蕉网| 亚欧在线精品免费观看一区| 亚洲性色AV日韩在线观看| 亚洲日韩国产成网在线观看| 毛片在线播放免费观看| 国产精品亚洲专区在线观看| 凹凸精品视频分类国产品免费| a毛片久久免费观看| 亚洲一区在线免费观看| 国产免费观看a大片的网站| 波多野结衣免费一区视频| 亚洲 日韩经典 中文字幕 | 91免费人成网站在线观看18| 亚洲gay片在线gv网站| 亚洲国产精品无码久久久秋霞2|