Read Sean

          Read me, read Sean.
          posts - 508, comments - 655, trackbacks - 9, articles - 4

          [Eclipse筆記]SWT真正的優勢不是快這么簡單

          Posted on 2005-06-20 13:55 laogao 閱讀(4575) 評論(9)  編輯  收藏 所屬分類: On JavaOn Eclipse

          經常看見網上許多人對SWT的認識無非就是說它運行速度快,其實這是個誤區。在SWT誕生之初,也許運行速度是它的一項主要目標,但是它真正的優勢其實并非這么簡單,讓它真正發光的是它對宿主操作系統的忠誠度,一方面,對用戶來說,他們操作的界面表現形式,包括外觀、快捷鍵等等可以和他們常用的軟件高度一致;另一方面,由于它直接封裝操作系統API的這個特性,任何你發現的界面上的問題或者說某個控件特殊的處理方式,你都可以在操作系統這一層的文檔中找答案,而不是在SWT中間找。這跟Swing很不一樣,Swing追求界面在所有平臺的一致性,而不是對當前平臺的其他本地應用的一致性。給我的感覺,Swing這樣的做法實際上是瞄著一個移動的靶子,永遠在趕路,因為它總是需要不停的跟著操作系統的變化和創新而變化與模仿。在這一點上,SWT的做法的確要高明得多。

          順便來看一個WOW魔獸世界的XP界面風格下的Eclipse的截屏:
          WOW_Style_Eclipse_Snapshot.jpg

          這個界面風格可以隨時跟你自己默認的XP風格對換,這樣的效果和方便的更替如果要Swing來實現豈不是有點勉為其難?我不是說SWT是萬能的,只是想讓大家知道,Swing有它好的地方,SWT同樣也有。

          Feedback

          # re: [Eclipse筆記]SWT真正的優勢不是快這么簡單  回復  更多評論   

          2005-08-15 01:48 by swing
          swing 也可以和當前操作系統風格一致啊

          # re: [Eclipse筆記]SWT真正的優勢不是快這么簡單  回復  更多評論   

          2005-08-15 12:59 by 大胃
          Swing可以做到完全模仿某一個風格,但那始終是模仿出來的。而且我很懷疑一個Swing做的GUI可以在Windows桌面主題變化以后自動跟著變化,除非你刻意實現了所有可能用到的主題,并編碼去偵測OS的主題變化。當然外觀都還是其次,重要的是GUI控件的默認行為,如就是應用在各個GUI控件上的眾多快捷鍵,Windows默認是這樣,其他操作系統未必。如果Swing真做成Windows的翻版,那就注定會被MS牽著鼻子走了,而且將很難做到平臺中立。所以說,Swing不應該、也沒有必要實現Windows下面各種花哨的主題風格。

          這是我的看法,希望你能證明我錯了。

          # re: [Eclipse筆記]SWT真正的優勢不是快這么簡單  回復  更多評論   

          2006-05-07 22:46 by xxx
          你的確錯了,Swing是在運行的時候跟隨OS主題變化而變化的。
          另外,Swing在1.6采用操作系統的內置的gui重畫方法,畫出的組件和OS完全一致,操作系統的界面變化時,它的代碼基本不用變。
          叫做圖形代理法,就是使用操作系統的本地代碼將組件畫在虛屏中,再刷新到界面上,因此永遠緊隨操作系統的變化而變化。

          # re: [Eclipse筆記]SWT真正的優勢不是快這么簡單  回復  更多評論   

          2006-05-08 18:36 by 大胃
          謝謝你對本話題的關注以及對我的糾正。Swing隨著Java版本的升級不斷進步,是我樂于看到的。

          只是我覺得Java的本質決定了Swing不可能也沒必要做到完完全全的OS忠誠,Java的"跨平臺"和平臺之間的尤其是那些細微之處的千差萬別(不只是外觀)是一個在我看來不可能調和的矛盾。

          # re: [Eclipse筆記]SWT真正的優勢不是快這么簡單  回復  更多評論   

          2006-05-10 14:34 by 卡卡西
          swing的MVC實現的相當精彩,swing的編程模型優雅而強大。swing的靈活性相當優秀。還有swing的架構很美。

          # re: [Eclipse筆記]SWT真正的優勢不是快這么簡單  回復  更多評論   

          2006-05-10 14:41 by 卡卡西
          swing當中的組件一語雙關,在概念上你可以把它看作GUI組件。在技術上它又扮演著MVC中的C 。妙。

          # re: [Eclipse筆記]SWT真正的優勢不是快這么簡單  回復  更多評論   

          2006-05-11 09:32 by hhh
          Swing可以做到完全模仿某一個風格,但那始終是模仿出來的.

          本地的圖形也是繪出來的,Swing用 java實現又怎么了。
          Swing也是一個繪制框架,它有極大的靈活性來實現一個新的look and feel.
          Swing是一件藝術品且具有極高的實用性。

          # re: [Eclipse筆記]SWT真正的優勢不是快這么簡單  回復  更多評論   

          2008-03-26 20:02 by 電玩
          swing為什么要跟本地外觀保持一致?Vista就那么養眼嗎?有創意的美工 加上 優秀的GUI設計師,windows界面有能怎么著?
          swing完全可以和flash抗衡的,目前的SWT還做不到這一點。等著JDK 7發布吧。你如果對桌面有興趣,到我博客上看看www.aygfsteel.com/javagui。flex和swing,我以后就搞這個了。

          # re: [Eclipse筆記]SWT真正的優勢不是快這么簡單  回復  更多評論   

          2008-08-13 19:14 by guolan85
          怎么可以在swt的界面上加載別的控件?
          比如加個swing或者直接加別的控件
          主站蜘蛛池模板: 广丰县| 洞头县| 尼勒克县| 牟定县| 冀州市| 哈巴河县| 平塘县| 崇礼县| 扎兰屯市| 兴仁县| 宜良县| 无极县| 铁岭县| 滦平县| 海南省| 岚皋县| 浏阳市| 如皋市| 东乌珠穆沁旗| 开鲁县| 梁河县| 南阳市| 福安市| 边坝县| 徐汇区| 广河县| 射洪县| 扎鲁特旗| 榆中县| 沽源县| 隆德县| 西藏| 岳阳县| 峨山| 山东省| 浠水县| 桐柏县| 齐齐哈尔市| 崇信县| 墨江| 南华县|