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

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

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

    kukooBlog

    look to the master, follow the master, walk with the master, see through the master, become the master.

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      213 隨筆 :: 0 文章 :: 285 評論 :: 0 Trackbacks

    Eclipse RCP平臺真的是一個非常好的平臺,但是在用RCP的過程中,一定有一個大問題: SWT的UI widgets。 了解Swing的人知道,Swing下面有相當多的widgets,而且Sun還贊助著一個SwingLab,為Swing開發(fā)更多的客戶化的UI widgets。 但是SWT目前有這么一個問題,SWT的元件,不能直接繼承來開發(fā)一個新的UI組件,Eclipse雖然提供了大量的widgets,但是卻還不夠豐富,或者使用上有局限性(比如table這個組件)。 所以我們面臨的問題就是: 要么自己開發(fā)適合自己需求的widgets,要么在網(wǎng)上找。 而目前,還沒有像Swing那樣存在大量的custom widgets,這有點像``雞"和``蛋"的問題。

    昨天在EclipseZone里看到一篇文章,進而找到了這篇blog: Custom SWT widgets List,里面給出了一個提供SWT widgets的列表,相當有幫助,像KTable這樣功能更強的table組件。 當然,Eclipse也注意到這點了,所以Eclipse有一個孵化項目: Nebula,開始關(guān)注custom SWT widgets,并在每一個組件成熟以后,加到SWT平臺里面。

    【相關(guān)鏈接】
    Custom SWT widgets List
    Eclipse Nebula 項目


    Technorati : , ,

    posted on 2006-09-01 17:23 kukooBlog 閱讀(2792) 評論(17)  編輯  收藏 所屬分類: EclipseJava

    評論

    # re: Custom SWT widgets ? 2006-09-22 11:22 david.z
    你好,一直關(guān)注你的blog。
    對你們的東西非常感興趣,請和我聯(lián)系。msn:zwangli@hotmail.com  回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2006-10-24 22:11 ken[匿名]
    eclipse插件站點:http://www.eclipsepowered.net/  回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2007-01-03 16:03 hhh[匿名]
    其實swing的目標就是建立一個獨立的GUI系統(tǒng)(獨立于OS),所以GUI的繪制都是自己實現(xiàn)(建立在java 2D上)。這樣帶來的好處就是可以拋開歷史包袱,從頭開始實現(xiàn)一個靈活,現(xiàn)代,面向?qū)ο螅嬲缙脚_的 GUI框架。
        
     當初swing設(shè)計思想是卓越的,Swing有著無與倫比的擴展性和靈活性,它采用了很多現(xiàn)代的UI理論,如renderer/editor等。只是礙于實現(xiàn)性能。
     但隨著swing實現(xiàn)的性能越來越高,硬件環(huán)境越來越好。swing的發(fā)展一定更好!
        
     要說sun對于swing的失敗,不是swing設(shè)計思想和架構(gòu)有問題。而是他們?yōu)閟wing實現(xiàn)的默認look & feel是糟糕的!
      回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2007-01-03 16:05 hhh[匿名]
    再次強調(diào)一下,
    swing的優(yōu)秀在于它的架構(gòu)和思想!如果你不從這些角度審視一下swing的話,你當然很難發(fā)現(xiàn)它的美!因為swing的設(shè)計充滿了OO的藝術(shù)!

    在"Swing是MVC設(shè)計的典范"一文中有這樣一段話:
    仔細研究Swing中事件監(jiān)聽、Model-View分離、Renderer/Editor機制、可插拔的LookAndFeel等機制,簡直就是一門藝術(shù),充滿了美感。而如果你非常痛恨這些設(shè)計并覺得他們怪異,很可能你是剛從VB或者Delphi轉(zhuǎn)過來,這些快速開發(fā)工具幫助了你也“害”了你。
      回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2007-01-03 16:08 hhh[匿名]
    我欣賞優(yōu)雅和一致的設(shè)計,一致性反應(yīng)了設(shè)計者極高的抽象水平,優(yōu)秀的概念表達.
      
      我們現(xiàn)在來看MFC和swing.
      MFC是如何表達GUI的,首先對于GUI元素沒有一個共性抽象,使得無法進行任意的遞歸組合.
      MFC認為 GUI元素是原子的,GUI元素自身提供了設(shè)置它屬性的API基本決定了這個GUI元素給外部定制它的能力.低靈活性!
      
      MFC認為GUI元素自身應(yīng)該處理事件,并且使用消息映射來實現(xiàn)這一點.
      所以通常如果你要處理某個GUI元素的事件,你需要寫一個繼承這個GUI元素的類.
      但殊不知很多情況下事件處理者和GUI元素是分離的!
      
      MFC的MVC是實現(xiàn)是不一致的,他并沒有將這一理念貫穿于整個框架.而只是單獨搞了個doc/view.
      
      所以如果我以今天的思路來看MFC,我覺得它對GUI的抽象是糟糕的,差勁概念表達.
      回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2007-01-03 16:09 hhh[匿名]
    MFC認為 GUI元素是原子的,GUI元素自身提供了設(shè)置它屬性的API基本決定了這個GUI元素給外部定制它的能力.低靈活性!
      ______________________________________________________
      
      這一條是很多win下GUI框架的通病,swt也好不到哪里去.

    swing的組件都是四兩撥千斤,模型和繪圖都是分離的,如表格
      JTable 就有TableModel ---->JTable<-----TableUI,從結(jié)構(gòu)來說JTable完全扮演著控制器的角色.從API的使用者角度來說它是一個MVC體系的外觀,讓人想起了設(shè)計模式中的外觀模式.
      
      因為swing中一個GUI元素就是一個MVC體系,而不原子的.
      除此之外還可以為組件自定義renderer/editor.
      回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2007-01-03 16:15 hhh[匿名]
    eclipse構(gòu)建在swt而不是swing上,現(xiàn)在看來是個錯誤,如果不是這樣,sun可能早放棄nb了。

    我很喜歡Eclipse,可就這個swt讓人不快!

      回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2007-01-03 16:16 hhh[匿名]
     SWT從實質(zhì)上說是頭疼醫(yī)頭,腳疼醫(yī)腳,這種本質(zhì)決定的它的架構(gòu)不好,當需求增加時,當面臨現(xiàn)實的Customization時,當面臨各種不同操作系統(tǒng)時,它的缺點就暴露出來了,簡單的說:
      
       對Java 界面涉及不深的人往往偏好SWT,對Java界面設(shè)計非常熟悉才能真正洞悉Swing的內(nèi)涵。人們對于SWT的喜愛是同他對SWT的了解深刻度成反比的, Swing恰好相反。對于SWT了解越淺的人,越對他的光鮮外表(主要是Eclipse的表現(xiàn)比較好,但畢竟Eclipse的漂亮程度歸公于他的界面設(shè)計藝術(shù),實質(zhì)并不在SWT的高級)。隨著開發(fā)者對于SWT的深入了解,就會發(fā)現(xiàn)越來越多的問題和局限性,了解不深的人,或者從傳統(tǒng)C/C++, WinForm以及MFC等東東轉(zhuǎn)過了的人,往往被SWT的表面所迷惑。可以不客氣的說SWT是AWT早已拋棄的努力。
      
       SWT憑著它對Windows平臺的優(yōu)化迷惑很多人,又以它的編程簡單性忽悠了很多人。其實SWT它在Linux的效率和Mac OS上的錯誤簡直要讓人發(fā)瘋。如果你真的想需要Windows平臺的界面,干嘛要用Java? C#豈不是更好?
      
       SWT 一個迷惑人的地方是所謂平臺保真(Fidelity),其實這也造成它不能輕易擴展和Customization的根源,而且,開發(fā)者往往喜歡平臺保真的界面,而用戶卻不一定,相當?shù)挠脩糇罱K喜歡WinAMP等類似可以更換皮膚和LookAndFeel的功能。即使是平臺保真度,Java6已經(jīng)完完全全的實現(xiàn)平臺一致性。SWT已經(jīng)沒有優(yōu)勢可言。
      
       SWT的另一個迷惑人的地方就是所謂速度,人們往往認為本地組件就比模擬組件要快,其實不然,由于 Java虛擬機和運行時速度的提高,Java編寫的程序已經(jīng)可以與C的速度相媲美,加上Swing內(nèi)在有虛擬機內(nèi)嵌代碼和熱編譯的等功能支持,Java實現(xiàn)的Swing代碼已經(jīng)和操作系統(tǒng)本身的組件沒有什么兩樣了。最近有JavaLobby上論壇貼出了一個名字叫MiGLayout,關(guān)于測試GUI界面的 BenchMark,測試的結(jié)果是:
      
       Windows平臺上Swing的啟動速度稍慢于SWT,運行速度幾乎一樣。
       Linux平臺上Swing的速度高于SWT,無論是啟動速度還是運行速度。GTK2上的速度差別就更大。
       MacOS上Swing的速度高于SWT,無論是啟動速度還是運行速度。
      
       IBM當時開發(fā)Eclipse時,Swing的確不爭氣,所以才有了SWT的出現(xiàn),但是如果當時Sun就把Swing打磨成現(xiàn)在這個樣子,估計IBM也不會輕易開發(fā)SWT,但也多虧SWT的出現(xiàn),促使Sun將Swing進行改革。
      
       最近一個國外叫EvansData的咨詢公司調(diào)查的GUI工具結(jié)果是:
       swing占有率47%,名列第一,WinForm名列第二,SWT不超過8%
      
       結(jié)論是:
       SWT不會消亡,因為有Eclipse的存在,如果想為它開發(fā)插件,就必須使用SWT。另外和AWT相似,SWT可以應(yīng)用到Mobile開發(fā)界面上,因為Swing畢竟太大了。
       Swing因為Java5和6的推動將席卷Java Desktop市場。
      
       畢竟任何的東西的存在都是合理,存在即合理,合理就不可能消逝。80/20的關(guān)系。
      
       對我的話持懷疑態(tài)度的人,尤其是Swing的速度可以去看看JavaLobby的這個帖子:
      http://www.javalobby.org/java/forums/t78884.html
       如果對Swing占有市場率有懷疑的人可以去看看這條新聞:
      http://www.clientjava.com/blog/2005/10/18/1129665205787.html




    SWT從實質(zhì)上說是頭疼醫(yī)頭,腳疼醫(yī)腳,這種本質(zhì)決定的它的架構(gòu)不好。
      ——————————————————————
      一針見血


      回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2007-01-03 16:21 hhh[匿名]
    熱炒Swing,重塑C/S輝煌(轉(zhuǎn))

    最近對Web有點倦了,正趕上很多程序員又開始反思C/S的好處,開始熱炒Smart Client及Flex之類的東西。加之接觸到一兩個基于.NET winForm的系統(tǒng),感覺還是相當棒的,不由得開始重思C/S系統(tǒng)。
      其實話說回來,在局域網(wǎng)和intranet領(lǐng)域,還是C/S好使。所以在業(yè)界瘋炒Web2.0的時代,并不能阻止無數(shù)基于Win32API的老掉牙系統(tǒng)繼續(xù)統(tǒng)治各單位的主要業(yè)務(wù),妨礙以此為生的公司與程序員們大撈鈔票。這充分說明了C/S的價值與必要性。畢竟很多C/S下簡單的界面功能,換到B/S下可得費不少心血,響應(yīng)也遠不及C/S。各企事業(yè)單位的大多數(shù)業(yè)務(wù)系統(tǒng),也并不需要internet。由此可見祖先的“中庸之道”是何等明智。以筆者愚見,B/S 適用于必須以internet為傳輸媒介的系統(tǒng),換言之也就是各組織的外部系統(tǒng);而內(nèi)部業(yè)務(wù)系統(tǒng),多數(shù)情況下仍應(yīng)以C/S為佳。
      以上論點并非要我們回到上一個基于Win32API的時代,而是需要開辟一個全新的C/S時代。上一代C/S系統(tǒng),至今仍難以解決諸如客戶端部署、信息孤島,過分依賴數(shù)據(jù)庫,訪問容量低,擴展性與可維護性差等等“硬傷”。原因至少有三,一是以數(shù)據(jù)庫系統(tǒng)為核心,無法適應(yīng)數(shù)據(jù)交換標準化與多媒介的要求;二是因 Win32API的壟斷造成各平臺與軟件不兼容;三是未能應(yīng)用OOP的方式進行開發(fā),未進行分層設(shè)計,代碼高度耦合。
      那么我們的新C/S時代應(yīng)該以怎樣的方式解決問題?首先,數(shù)據(jù)不應(yīng)再采用以數(shù)據(jù)庫、文檔廠商自行其事的標準(如Oracle、SQL Server、WinWord),而應(yīng)采用統(tǒng)一的標準(現(xiàn)在主要是XML);其次,應(yīng)脫離專屬平臺與壟斷技術(shù);第三,深入研究OOP,清晰地分層設(shè)計,降低代碼的耦合度,使系統(tǒng)具有良好的可維護性與擴展性。只有這樣,我們才能在客戶業(yè)務(wù)與IT技術(shù)飛速發(fā)展的時代,充分保護與發(fā)展好我們的即有設(shè)計與代碼,快速滿足客戶的需求。像上個時代不斷重建那種“做好就扔”的快速原型系統(tǒng)之悲劇不應(yīng)一再重演。
      標準是有了,那么有這樣的技術(shù)嗎?有,而且近在眼前,那就是Swing。其實這技術(shù)Sun老早就提供給大家了,可惜在國內(nèi)一直火不起來。其中原因及筆者力推的原因有三:一、Swing這種基于虛擬機的技術(shù),比之Win32 Form慢多了。這在三五年前的確是個大問題。但現(xiàn)在的機器快得太多,連MS也力推基于虛擬機的winForm,這說明虛擬機的時代全面到來是確定無疑了。但MS因其壟斷政策,導(dǎo)致.NET成了瘸腿的虛擬機,跨平臺的要求短期內(nèi)是不可能的。與平臺脫耦合的要求只有Swing才能擔當。二、Swing的設(shè)計要求高。Swing將經(jīng)典的MVC可謂發(fā)揮得淋漓盡致。而由于歷史原因,國內(nèi)絕大多數(shù)C/S程序員一直于缺乏OOP習慣及經(jīng)驗。對Swing這種經(jīng)典設(shè)計方式是難以接受的,無法領(lǐng)會由分層所帶來的巨大長遠優(yōu)勢。故寧可死守VB、PB、Delphi這些失去前途的東西,或者抵不住MS winForm快餐的誘惑,再次投入MS過程式編程的泥潭。不深入理解OOP,不深入領(lǐng)會分層思想,幾乎無法有效使用Swing,這正是Sun的嚴格與苦心,大家要用心體會啊。三、MS與國內(nèi)很多程序員自Swing誕生以來,就無時不對其冷嘲熱諷。以致于有志于C/S的Java程序員(筆者曾經(jīng)的狀態(tài))甚至絕望地熱炒起Swt這種不成熟的東西。于是在無處不在的中傷與分裂中,Swing在國內(nèi)一直開不了花。前一陣子聽說Swing在國外其實是很火的,上網(wǎng)用google一搜"Swing"-95,700,000,再一比"winForm"-4,980,000。大家沒想到吧!如果是在國內(nèi)的C/S市場,只 Swing只怕連winForm的十分之一都不及。這不得不提上面所說的“歷史原因”。國外的C/S程序員,大都有豐富的C++經(jīng)歷,早已體會了OOP與分層的好處,故Swing必然成為虛擬機時代最好的選擇;而國內(nèi)的C/S程序員,基本上是在RAD的浪潮中投入行業(yè)的,非常缺乏OOP的經(jīng)驗。導(dǎo)致今天不但在C/S領(lǐng)域,就算在B/S領(lǐng)域,也不斷地以ASP模式制造無前途的系統(tǒng)。所以包括Swing、EJB、JSF等等這些東西被很多人瞎搞與亂罵也就不足為怪了。
      
      順便提一個最近熱炒的Flex、MS Expression。Flex不過是Adobe的專屬技術(shù),最多落個Flash的結(jié)局就不錯了。MS的東西風格與前途一向如此,不再多論。而身處于編程世界最廣泛、最成熟的Java體系,Swing無疑是最有前途與通用性的。
      
      應(yīng)當說,現(xiàn)在國內(nèi)大部分程序員,是曾經(jīng)并且將要繼續(xù)靠C/S吃飯的。那么,但愿此文能讓大家重新認真地、負責任地審視并應(yīng)用Swing,體會那純正的OOP與分層設(shè)計,再塑國內(nèi)又一個高度繁榮并且高質(zhì)量的C/S時代。  回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2007-01-03 16:23 hhh[匿名]
    說了這么多,請問LZ有何感想!


    人們對于swing的誤解太多了!
    殊不知它是一個有著優(yōu)秀架構(gòu)的框架!  回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2007-02-12 09:35 abba
    swing做出來的東西要比bs的嚴謹多了,嚴重支持  回復(fù)  更多評論
      

    # re: Custom SWT widgets ?[未登錄] 2007-03-12 16:42 xy
    SWING做出來的東西看起來與本地操作系統(tǒng)格格不入,是敗筆之一。
    另外若長時間后返回SWING界面,打開選文件或目錄的窗體,窗體一片灰,難道這就是一個好程式或軟件嗎?  回復(fù)  更多評論
      

    # re: Custom SWT widgets ?[未登錄] 2007-03-12 16:48 xy
    SWING所謂的MVC設(shè)計,對于一兩年經(jīng)驗的大多數(shù)程序員來說,使用的難度可不小,如客制JTABLE,SOURCE用的設(shè)計模式多多,可卻效果SOSO,令人失望。說白了就是脫褲子放屁,多此一舉。  回復(fù)  更多評論
      

    # re: Custom SWT widgets ?[未登錄] 2007-03-12 17:00 xy
    對于SWT大眾級應(yīng)用軟件用過好幾個,最執(zhí)行的BT,RSS都見SWT程序的影子,另外也暫不提GOOGLE的即將出籠的P2P客戶端(基于SWT,跨平臺),而SWING大眾軟件卻沒用過,對SWING失望呀,不知hhh[匿名] 對此有何感想?  回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2007-03-22 16:59 yeko
    http://www.autoscatto-erotico.ffclan.it
    http://www.bottiglie-nel-culo.ffclan.it
    http://www.culi-e-fighe.ffclan.it
    http://www.donne-ninfomani.ffclan.it
    http://www.eros-bologna.ffclan.it
    http://www.gli-uomini-preferiscono-le-bionde.ffclan.it
    http://www.fumetti-manga-porno-gratis.ffclan.it
    http://www.intl-xx-hacker.ffclan.it
    http://www.honda-cbr-xx.ffclan.it
    http://www.lunghezza-vagina.ffclan.it
    http://www.musica-andina.ffclan.it
    http://www.nere-sexy.ffclan.it
    http://www.oroscopo-erotico.ffclan.it
    http://www.portobello-annunci.ffclan.it
    http://www.real-boobs.ffclan.it
    http://www.storie-erotiche-vissute.ffclan.it
    http://www.turkish-air.ffclan.it
    http://www.uomini-nudi-per-donne.ffclan.it
    http://www.z-pornostar.ffclan.it
    http://www.voglia-di-sesso.ffclan.it
    http://www.www-vogliose-org.ffclan.it
    http://www.kut-nl.ffclan.it
    http://www.qui-mamme-it.ffclan.it
    http://www.300-video-gratis.ffclan.it
    http://www.jessica-rizzo-free.ffclan.it
    http://www.yahoo-giochi.ffclan.it
    http://www.xbox-giochi.ffclan.it
    http://www.899-erotico.ffclan.it  回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2007-04-23 22:56 kingsure
    無意間看到了該主題,無論SWING還是SWT,對于一個做GUI的程序員來說都是非常棒的庫。本人多年來一直處于SWING和SWT的開發(fā),當年拋棄SWING轉(zhuǎn)入SWT實在是SWING的速度太糟糕,而SWT憑著Eclipse的出色表現(xiàn),確實令很多開發(fā)真傾倒,雖然SWING的速度一直在提高,一直在努力而且其出色的框架及真正的做到一次編譯到處運行[SWT是一次編譯,到處修改:) ]。
    但話說回來SWT并沒有象樓上說的那么差勁,深入了解過Eclipse的程序都了解,Eclipse中使用的最出色的并不是直接都SWT進行操作,SWT只是為JFACE進行了底層操作,在Eclpise中基本上使用了JFACE對數(shù)據(jù)及ACTION進行了封裝(JFACE是可以單獨使用的)。所以其在界面中對數(shù)據(jù)對象的操作及設(shè)計思想并不亞于SWING的Model,可能單純的SWT和SWING確實無法抗衡。但加上JFACE的封裝,所謂對SWING的OOP設(shè)計傾倒的同胞可以嘗試下JFACE,可能會改變您的想法。  回復(fù)  更多評論
      

    # re: Custom SWT widgets ? 2007-08-04 08:29 睡教覺主
    Jface/swt,我覺得很2。
    沒有太想清楚哪里2,但是就是覺得很2。

    swing......設(shè)計完美,太完美了以至于有點迂腐。

    mfc......就是shit一坨。不提也罷。不過現(xiàn)在不都用.net了么?  回復(fù)  更多評論
      

    主站蜘蛛池模板: 18禁成人网站免费观看| 国产男女性潮高清免费网站| 国产成人精品日本亚洲网址| 国产国产人免费人成免费视频| 两个人看的www视频免费完整版| 99ri精品国产亚洲| 免费在线观看中文字幕| 午夜无码A级毛片免费视频| 亚洲精品无码久久| 亚洲第一AAAAA片| 国产在线98福利播放视频免费| 国产精品免费AV片在线观看| 亚洲精品中文字幕无码A片老| 国产成人精品日本亚洲网站| 午夜毛片不卡高清免费| 久久99免费视频| jzzijzzij在线观看亚洲熟妇| 亚洲福利在线观看| 亚洲?V乱码久久精品蜜桃 | 亚洲av极品无码专区在线观看| 亚洲精品国精品久久99热| 久久久久久久91精品免费观看| 在线观看片免费人成视频无码| 亚洲AV无码专区亚洲AV桃| 中文字幕亚洲精品资源网| 国产成人亚洲综合无码| 成人无遮挡毛片免费看| 91福利视频免费观看| 一级毛片大全免费播放下载| 亚洲人成未满十八禁网站| 亚洲高清无在码在线电影不卡| 国产亚洲欧洲Aⅴ综合一区| 亚洲人成电影在在线观看网色| 免费一级毛片在线观看| 成人一a毛片免费视频| 久久精品国产亚洲AV天海翼| 亚洲精品第五页中文字幕| 曰韩亚洲av人人夜夜澡人人爽 | 国产成人无码区免费A∨视频网站| 免费观看美女用震蛋喷水的视频| 国产啪精品视频网站免费尤物|