什麼是Swing?它和AWT比有什麼優點?-

來源:互聯網
上載者:User

Java Swing組件的特點:

1、Swing的實現是一個小型GUI架構,該架構無基本平台依賴性,而在AWT實現中卻有依賴性。

2、javax.swing.JComponent類是所有Swing組件的基類。

3、Swing模型的目標是要遵循模型-視圖-控制器體繫結構。模型封裝了資料和狀態的底層表示。

4、javax.swing.plaf包提供了一個介面和許多抽象類別用於定義可插入的外觀架構。預設的外觀由javax.swing.plaf.basic包中的類實現。 

 

swing是完全自繪控制項  
  swt事先看看平台有沒有控制項,如果有   ,就用平台的,沒有   在自己類比  
  awt是直接用平台的,如果平台沒有,就沒法使用  
  swt集中了awt河swing的優點  
   
  個人認為:swing適合搞圖形映像開發  
  swt是合作普通gui開發

 

java   GUI程式開發的基礎是AWT   (Abstract   Window   Toolkit),它有個特點:視窗中的組件(按鈕等)都是與作業系統對等組件相關的重量級組件,所以不夠靈活。同時它的設計初衷是在Applet中用的。  
   
  Swing   是基於AWT之上的,它除了頂級組件是重量級的,其它的組件(如按鈕、輸入框等)和布局都是與作業系統無關的輕量級的。因此它有自已的Look   and   Feel。  
   
  SWT   (Standard   Widget   Toolkit)是Eclipse項目中基於java   的另一套GUI編程介面。Eclipse本身就是基於此的。

 

當我們開始使用Swing庫時,會注意到它在技術上向前邁出了巨大的一步。Swing組件是Bean,因此他們可以支援Bean的任何開發環境中使用。Swing提供了一個完全的UI組件集合。因為速度的關係,所有的組件都很小巧的(沒有“重量級”組件被使用),Swing為了輕便在Java中整個被編寫。

最重要的是我們會希望Swing被稱為“正交使用”;一旦我們採用了這種關於庫的普遍的辦法我們就可以在任何地方應用它們。這主要是因為Bean的命名規則,大多數的時候在我編寫這些程式例子時我可以猜到方法名並且第一次就將它拼字正確而無需尋找任何事物。這無疑是優秀庫設計的品質證明。另外,我們可以廣泛地插入組件到其它的組件中並且事件會正常地工作。

鍵盤操作是自動被支援的——我們可以使用Swing應用程式而不需要滑鼠,但我們不得不做一些額外的編程工作(老的AWT中需要一些可怕的代碼以支援鍵盤操作)。滾動被毫不費力地支援——我們簡單地將我們的組件到一個JScrollPane中,同樣我們再增加它到我們的表單中即可。其它的特徵,例如工具提示條只需要一行單獨的代碼就可執行。

Swing同樣支援一些被稱為“可插入外觀和效果”的事物,這就是說UI的外觀可以在不同的平台和不同的作業系統上被動態地改變以符合使用者的期望。它甚至可以創造我們自己的外觀和效果。

AWT是Swing的基礎。Swing的產生主要原因就是AWT不能滿足圖形化使用者介面發展的需要。AWT設計的初衷是支援開發小應用程式的簡單使用者介面。例如AWT缺少剪貼簿、列印支援、鍵盤導航等特性,而且原來的AWT甚至不包括彈出式菜單或滾動窗格等基本元素。

此外AWT還存在著嚴重的缺陷,人們使AWT適應基於繼承的、具有很大伸縮性的事件模型,基於同位體的體繫結構也成為其致命的弱點。
  隨著發展的需要,Swing出現了,Swing組件幾乎都是輕量組件,與重量組件相比,沒有本地的對等組件,不像重量組件要在它們自己的本地不透明表單中繪製,輕量組件在它們的重量組件的視窗中繪製。

Swing是由100%純Java實現的,Swing組件是用Java實現的輕量級( light-weight)組件,沒有本地代碼,不依賴作業系統的支援,這是它與AWT組件的最大區別。由於AWT組件通過與具體平台相關的對等類(Peer)實現,因此Swing比AWT組件具有更強的實用性。Swing在不同的平台上表現一致,並且有能力提供本地視窗系統不支援的其它特性。

Swing採用了一種MVC的設計範式,即"模型-視圖-控制"(Model-View-Controller),其中模型用來儲存內容,視圖用來顯示內容,控制器用來控制使用者輸入。

在AWT組件中,由於控制組件外觀的對等類與具體平台相關,使得AWT組件總是只有與本機相關的外觀。Swing使得程式在一個平台上運行時能夠有不同的外觀。使用者可以選擇自己習慣的外觀。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.