淺談Swing和SWT比較

2020-12-11 51CTO

淺談Swing和SWT比較

本文主要比較Swing和SWT,分別從組件體系,組件繪製,事件模型和包設計方面進行比較。

作者:網絡來源:中國IT實驗室|2009-07-10 11:07

Swing和SWT簡介

Swing產生的主要原因就是AWT不能滿足圖形化用戶界面發展的需要。AWT設計的初衷是支持開發小應用程式的簡單用戶界面。AWT缺少剪貼板、列印支持、鍵盤導航等特性;AWT功能較弱,它甚至不包括彈出式菜單或滾動窗格等基本元素。此外,AWT體系結構還存在著其他一些嚴重的缺陷。

隨著圖形化用戶界面發展的需要,Swing出現了,Swing組件幾乎都是輕量級組件,與AWT相對的重量級組件相比,Swing沒有本地的對等組件,不像重量級組件那樣要在它們自己本地的不透明窗體中繪製,輕量級組件會在它們的重量級組件的窗口中繪製。

SWT本身僅僅是Eclipse組織為了開發Eclipse IDE環境所編寫的一組底層圖形界面 API。或許是無心插柳,或是有意為之,至今為止,SWT無論是在性能和外觀上,都超越了SUN公司提供的AWT和SWING。目前Eclipse IDE已經開發到了2.1版本,SWT已經十分穩定。這裡指的穩定應該包含兩層意思

比較Swing和SWT

1.組件體系:
a) Swing:通過在父組件上動態調用add()和remove()方法,來對組件樹進行動態維護,因此,可以存在沒有父組件的子組件。
b) SWT:通過在構造函數的參數中,指定父組件,因此,不可能存在沒有父組件的子組件。

2.組件繪製:
a) Swing:通過調用組件的paint()方法來進行組件的繪製,組件進一步對他的子組件調用paint(),從而完成整棵組件樹的繪製。通過子類化,重寫paint()方法,可以完全定製一個組件的繪製。
b) SWT:SWT組件只是本地平臺上實際組件的一個代理,實際組件採用win32編程方式進行繪製,繪製的過程不在JVM中完成。因此,子類化也不能對繪製進行完全定製。當SWT組件進行繪製時,他在完成了本地的繪製以後,會返回JVM,然後對所有已註冊的PaintListener發出通知,因此,通過註冊PaintListener可以對組件繪製進行一定程度上的修改。

3.事件模型:
a) Swing中的事件會跟據當前的焦點進行發送。父組件不能對事件進行過濾。Swing中的事件監聽器都是有類型的,因此每個組件所能支持的事件類型是通過方法名來限定的。不能擴展。
b) SWT中的事件也是根據當前的焦點進行發送。父組件不能對事件進行過濾。SWT中支持有類型的監聽器,也支持無類型的監聽器,通過addListener(type,listener),我們可以為組件添加任何類型的監聽器。

4.包設計:
a) Swing是一個純粹的組件庫,他沒有圖形的操作,他的繪製最終轉發給Java 2D來完成。
b) SWT包含了組件庫和圖形庫,他的結構與AWT比較接近。

以上是總結Swing和SWT,希望對大家有用。

【編輯推薦】

  1. SwingWorker的實例化
  2. Swing控制項可以提供聽覺反饋
  3. Java swing組件的串行化方法
  4. Swing組件的新元素Spinner Model
  5. SwingWorker單線程規則

【責任編輯:

志京

TEL:(010)68476606】

點讚 0

相關焦點

  • SWT、Swing 或 AWT:哪個更適合您?
    JFace 是一組用來簡化使用 SWT 構建 GUI 的增強組件和工具服務。SWT 的構建者從 AWT 和 Swing 實現中學習了很多經驗,他們試圖構建一個集二者優點於一體而沒有二者的缺點的系統。從很多方面來說,他們已經成功了。  SWT 也是基於一個對等體實現的,在這一點上它與 AWT 非常類似。
  • Swing程序中如何調用JavaFX代碼
    *;import javax.swing.我們通過 BorderLayout和FlowLayout在Swing的窗口(JFrame)中布置了一些圖形控制項。有2行代碼是和加載JavaFX的Scene相關的:String sceneClass = "swingtest.MyScene";JComponent myScene = SceneToJComponent.loadScene(sceneClass);其中SceneToJComponent類是從JFXtras項目中來的。
  • 實用英語:「搖擺州」swing state
    原先雙方勢均力敵的密西根、明尼蘇達、威斯康辛、賓夕法尼亞和科羅拉多五個「搖擺州」,現在都已倒向歐巴馬。剩下的七個搖擺州,歐巴馬也大部份較具優勢。   上面的報導中,swing state就是我們所說的「搖擺州」,這個表達是美國大選中的一個特有說法,也叫battleground state或者purple state,指的是a state in which no candidate has overwhelming support,即競選雙方勢均力敵,都無明顯優勢的州。
  • 每日地道英語口語:get into the swing of something
    Get into the swing of something解釋為to start to understand、enjoy and be active in something,and you feel confident that you can deal with it,即開始理解、享受
  • Swing Inspector 1.2.1(beta2)發布
    Swing Inspector 1.2.1(beta2) for windowsSwing Inspector是一個Java Swing/AWT用戶界面分析、調試工具,功能與firebug類似,具有強大的Swing/AWT用戶界面分析和調試相關功能
  • 1分鐘英語挑戰:get (back) to the swing of 是什麼意思?
    瀏覽器版本過低,暫不支持視頻播放建議您優先收看視頻,然後瀏覽文本get (back) to the swing再舉幾個例子:I've only been working here for a week, so I'm still getting into the swing of it.我在這裡只工作了一個星期,所以我還在適應新環境。
  • 「pull strings」居然是「走後門」的意思 實在不會,借個swing 也...
    今天和大家聊聊:靠關係;走後門 swing n.鞦韆 延伸做動詞,一起看看它的動詞含義v.令人興奮You need music to make a party swing.要有音樂,排隊才熱鬧。v.Can you swing it?我想要那個秀的門票,你能安排嗎?「你怎麼辦到的?」用英語這樣說:How'dyouswingthat: 你是怎麼辦到的?swing在這裡的意思是「決定性地影響;成功地處置,對付」,用在口語中。
  • 3月14日 周日 | Downtown Swing Fun Lindy 趣味主題課
    在Downtown Swing整個常規課的教學體系中,我們更關注的是在課堂上分享搖擺舞的基本原理和技巧,搖擺舞經典舞步,以及Solo jazz及經典的Routine等等,我們通過各種動作和練習來讓大家去體會和把握搖擺舞的核心元素。包括Connection, Momentum, Frame, Flow, Leading and Following各種技巧的應用。
  • 四級核心詞彙:swing,valid,champion,快來學學吧!
    嗨,大家好,今天為大家介紹三個單詞:swing,valid,champion,話不多說,讓我們開始吧!swing,valid,champion00:07來自梨梨學英語swingswing是個動詞,意思是「搖擺,擺動」,相當於單詞sway。
  • 2018年大中華地區Swing搖擺舞活動匯總
    麻辣成都2018活動連結:報名 | 麻辣搖擺 Mala Swing 2018Website:http://swingchengdu.com/malaswing/Facebook:https://www.facebook.com/swingchengdu/時間:6月1日-4日 June 1 - 4教師:Adamas,Young Ji & Oat地點:CHENGDU成都周五、周六晚:麗江瑞吉會所(濱江東路
  • 淺談高職擴招工商管理類專業——財務管理和會計
    前面已經淺談了很多專業(部分連結如下),今天繼續聊聊工商管理類專業財務管理和會計兩個專業。淺談高職擴招管理類專業——旅遊管理和物流管理淺談高職擴招衛生服務類專業——社區康復和健康管理現在的內資企業對會計人才需求量非常大,就業情況非常好,但是在待遇和發展方面比較欠佳。
  • 關於增強Swing您所不知道的5件事
    Substance  將一個 Java 應用程式和一個本地作業系統整合起來是比較麻煩的,主要是因為 Swing 的組件是人工繪製的。可以改變的就是 Java 外觀和效果,允許 JVM 將應用程式的組件顯示委託給本地外觀和效果。
  • Swing Inspector 1.2.2_beta2 發布
    國際化,根據環境顯示對應語言界面(中文和英文)     6. 取消在winxp環境下透明度支持 詳細信息和下載地址:     http://www.swinginspector.com/ Swing Inspector 1.2.2 (beta2) for Windows / Mac OSX / Linux Swing Inspector是一個Java Swing/AWT用戶界面分析和調試工具
  • swing girls唱響中韓夢 爭做中韓文化親善使者
    swing girls唱響中韓夢  韓國國寶級女子組合Swing girls,頻頻出現在國內大型活動、演出、頒獎典禮的現場music.yule.sohu.com/20140708/n401936166.shtml report 950 swinggirls
  • 【節奏牛津閱讀樹】第一階段The Swing Ball
    Dad bought a swing ball.  爸爸買回了一套擺球。  最後爸爸給買回來了一套擺球。這就是我們封面看到的那個球,這個就是擺球。那麼這個球究竟有多麼奇特呢?Biff 和 Chip 究竟會不會在把這個球弄壞了呢?讓我們接著往下看。
  • 教學 | 如何做好壺鈴swing?
    壺鈴swing是一個很值得放進力量訓練課表的動作,面對初學者我們還是得進行必要的動作和理論指導,掌握動作細節,才能練出效果。
  • 用TableModel框架簡化Swing開發
    特定於 TMF 的代碼位於 com.ibm.j2x.swing.table 包中。  com.ibm.j2x.swing.table.BeanTableModelBeanTableModel 是框架的***部分。它充當的是通用 TableModel ,您可以用它來處理任何類型的數據。我知道,您可能會說,「您怎麼這麼肯定它適用於所有的數據呢?」
  • 2分鐘看懂,PTE寫作高分秘籍,如何攻克SWT?
    在你做完口語項目的最後一個ASQ之後,SWT就會非常驚喜及意外地迫不及待和你見面。那麼我們的應對措施呢,當然是時刻瞄準右上角的計數單位,按完next之後發現屏幕上出現了滿滿的文字而不是短短的進度條的時候,考生就需要以最短的時間摘下你做聽力時使用的耳機以保證你能夠不浪費一秒鐘的時間。
  • Laird寄語新學員:Swing Hard
    聽上去很簡單,但你會很驚訝地發現有多少孩子和成年球員沒有這樣做。教練們多年來一直在告訴他們,當你看到好球來的時候就揮棒,或者會說不要光站在那裡,要揮棒。孩子們也是這樣被教導。但是,你會發現,站在那裡不動和因為來的可能是好球而隨便揮棒的結果是一樣的-這個人擊不中球。