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

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

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

    豬兒笨笨的文檔

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

     

    SWT還是Swing

    ?
    ?
    ????我這幾年雖然也做了一些相對底層的開發,如工作流等,但主要精力還是在Java UI上,所以對SWT和Swing相對還比較了解,在這里寫下我對Swt和Swing的一件看法,供朋友參考。
    ????
    ????這個問題放在三年前,根本不是一個問題,那個時候的Eclipse用戶還比較少,而離開Eclipse的SWT也很難進行獨立開發,因此開發UI,仍然是Swing的天下。
    ????但是自從基于SWT的RCP正式提出以后,對于Java UI的開發者卻不得不面對這樣一個問題,SWT還是Swing。
    ????其實對于這樣的比較,對Swing是有一些不公平的,因為用SWT開發較大的程序,肯定會用到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的控件,這樣可以獲得最本地化的外觀效果,但是由于它是嚴重依賴于本地操作系統提供的控件,而且進行擴展的時候,要針對不同的操作系統進行測試,工作量很大,象我用的KTable在Linux下就有幾個問題。這也是SWT控件嚴重缺乏的原因之一,還好Eclipse最近也成立新的項目組來開發Swt控件,相信不久以后會有好消息。
    ?
    ????上手問題:
    ?
    ????如果說上手,我從上想到下,還是覺得SWT更快一些。象JTable,我帶的幾個實習生,研究了一周還不明白怎么用,但是換成Swt,不到三天,就可以照著寫程序了。因為Swt提供的是簡單易用的API,而要用Swing,首先要明白Swing的結構,對于一般的程序員來說,自然是前者快一些了。
    ????如果大家對些有懷疑的話,有空可以去www.java2s.com上去看一看用Swt和Swing分別寫一個Table,哪一個的API更容易理解。
    ????不過SWT的資源管理確實是一個很大的問題,對于新手而言,結果可能是致命的,有得必有失。
    ?
    ????框架問題:
    ????
    ????框架也正是我前面說的不公平問題,Eclipse的Platform和RCP都已經提供了很好的開發框架,如Perspctive和View,Editor,PropertyEditor等。但Swing還沒有一個很好的免費的框架,商用的有。因此拿這兩者比較還是有失公平的。更不用說Eclipse還提供了很好的擴展機制和國際化處理。
    ????現在好象Netbeans也提供了一部分框架的東西,而Spring的RCP也開始初現頭角,不過領跑了一年的Eclipse RCP,Netbeans和Spring還是要努力的。
    ?
    ?
    ????如果一個公司要做一個長期的產品,我只能說Swing在很大程序上還優于SWT,這個優于不是指性能,而是指API的穩定性。從Eclipse2-3.2,長期使用Eclipse的朋友最頭疼的可能就是習慣的插件無法運行在新的Eclipse上。而Swing的API相對就穩定的多。
    ????當然這里不是絕對不用SWT的,你可以可以在Swt中使用Swing,象Borland的Together for eclipse就是一個最好的例子,這樣的結果就是我Eclipse3.0時使用的Community Version Together,在Eclipse3.1.2運行的很好,當然Borland這樣做的原因之一也是因為它同時要提供JBuilder的Together,所以Swing是個唯一的選擇,但是GEF的API不是很穩定,可能也是Borland放棄GEF的原因,使用了SWT+Swing的概念。
    ????最后說一句,無論哪種比較,都只是片面的,還是要根據自己的情況選擇合適的UI平臺。
    ?
    ????
    ????????

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


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


    網站導航:
     

    導航

    統計

    常用鏈接

    留言簿(18)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 久久精品无码专区免费东京热| 特级毛片A级毛片免费播放| 久久99免费视频| 亚洲毛片αv无线播放一区| 久久最新免费视频| 自拍偷自拍亚洲精品情侣| baoyu122.永久免费视频| 亚洲国产精品VA在线观看麻豆| 一个人免费日韩不卡视频| 久久亚洲免费视频| 中文字幕成人免费视频| 国产精品亚洲精品| 国产hs免费高清在线观看| 一级女性全黄生活片免费看| 亚洲精品无码久久千人斩| 57pao一国产成视频永久免费| 亚洲va在线va天堂va手机| 免费观看的毛片手机视频| 久青草国产免费观看| 久久亚洲精品中文字幕三区| 18禁男女爽爽爽午夜网站免费| 激情内射亚洲一区二区三区爱妻| 在线免费一区二区| 男女一进一出抽搐免费视频| 亚洲美女激情视频| 白白国产永久免费视频| 久久成人永久免费播放| 亚洲欧洲综合在线| 国产人成免费视频| 先锋影音资源片午夜在线观看视频免费播放 | 精品97国产免费人成视频| 337p日本欧洲亚洲大胆色噜噜| 在线免费观看一区二区三区| 国精产品一区一区三区免费视频| 亚洲成a人片在线观| 亚洲一区二区高清| 2021国产精品成人免费视频| 巨胸喷奶水www永久免费| 亚洲综合伊人制服丝袜美腿| 国产亚洲精品无码专区| 国内精品乱码卡1卡2卡3免费|