什麼是Swing 它和AWT比有什麼優點
分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow
也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!
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使得程式在一個平臺上執行時能夠有不同的外觀。使用者可以選擇自己習慣的外觀。