SWING
網際網路基礎類(IFC) 是網景公司最初為Java開發的圖形庫,第一次發布於1996年12月16日。
在1997年4月2日,太陽微系統公司 和 網景公司宣稱他們要將IFC和其他技術合併形成 Java基礎類。作為IFC最初提供組件的附加品, Swing引進了一個機理:在不改變大量的程序代碼前提下允許程序中每個組件觀感的變化。支持可更換觀感技術的引入允許Swing組件在模擬原生組件外觀的同時又保持了平台獨立的優點。
Swing是一個為Java設計的GUI工具包。 Swing 是Java API的一部分。 Swing 包括了圖形用戶界面 (GUI) 器件 如:文本框,按鈕,分隔窗格和表。
Swing提供許多比AWT更好的螢幕顯示元素。它們用純Java寫成,所以同Java本身一樣可以跨平台運行,這一點不像AWT。 它們是JFC的一部分。 它們支持可更換的觀感和主題(各種作業系統默認的特有主題),然而不是真的使用原生平台提供的設備,而是僅僅在表面上模仿它們。這意味著你可以在任意平台上使用Java支持的任意觀感。 輕量級元件的缺點則是執行速度較慢,優點就是可以在所有平台上採用統一的行為。
一、Swing和AWT的關係
Java的早期版本以來,抽象窗口工具包為用戶界面組件提供了平台獨立的API。在AWT中,每個組件都由一個原生的等同組件生成和控制,這個原生組件是由當前的圖形窗口系統決定的。
與此相對,Swing 組件經常被描述為輕量級的,因為它們不需要作業系統本身所帶窗口工具包的原生資源來生成。
Swing API 的大部分是AWT的補充擴展而不是直接的代替。Swing用來繪製輕量級組件的核心渲染功能是由Java2D提供的,這是AWT的一部分。然而,輕量級和重量級組件在同一個應用中使用會導致Z-order不兼容。
二、Swing和SWT的關係
標準器件工具包 是一個最初由IBM開發的工具包,現在由Eclipse基金會維護。 SWT的實現同重量級的組件AWT有更多的共同之處。這樣的好處是運行開銷同所在平台的原生窗口工具包更為接近。
SWT的到來使得Java桌面的開發者們分離為SWT的支持者和Swing的支持者。 在即將到來的6.0版Java中,Swing的新修補專注於同原生原生窗口平台的逼真度,這可能會直接解決這個問題。
三、Swing與AWT的區別
Swing為基於窗體的GUI應用開發設計,為Java跨平台特性提供了卓越的支持.它完全沒有本地代碼,不受作業系統的影響,做到了真正的跨平台應用,甚至能夠提供本地窗口系統不支持的其它特性。因此比AWT具有更強的實用性,同時比AWT程序擁有更加精緻的外觀感受。 AWT只提供基本的組件,使很多設計變得複雜,且無法在不同的平台下保持顯示風格的一致性。例如:如果建立一個按鈕(Button)對象,就會有一個按鈕(ButtonPeer)同其對象一起被建立,然後此按鈕對象會請求底層作業系統創建一個真正的按鈕。即在Windows NT 上執行,那麼創建的就是Windows NT按鈕;在Linux 上執行,那麼創建的就是Linux按鈕。因此AWT組件外觀會受到底層作業系統的影響.