更新時間:2020-08-20 來源:黑馬程序員 瀏覽量:
在早期JDK1.0發布時,Sun公司就為GUI開發提供了一套基礎類庫,這套類庫被稱為AWT(Abstract Window
Toolkit),即抽象窗口工具包。AWT的起初設想就是為了統一實現不同操作系統的圖像界面,但問題是,不同操作系統圖形庫的功能可能不一樣,在一個平臺上存在的功能在另外一個平臺上則可能不存在,為此AWT不得不通過犧牲功能來實現平臺無關性。不僅如此,AWT還是一個重量級組件,使用比較麻煩,且設計出的圖形界面不夠美觀功能也非常有限。為此,Sun公司對AWT進行改進,提出了Swing組件,提供了更加豐富的組件和功能,來滿足GUI設計的一切需求。
Swing是一種輕量級組件,它由Java語言開發,同時底層以AWT為基礎,使跨平臺應用程序可以使用任何可插拔的外觀風格,并且Swing可以通過簡潔的代碼、靈活的功能和模塊化組件來創建優雅的用戶界面。所以同AWT相比,在實際開發中,更多的是使用Swing進行圖形用戶界面開發。需要注意的是,Swing并不是AWT的替代品,而是在原有的AWT的基礎上進行了補充和改進。
Swing組件為實現圖形用戶界面提供了很多基礎類庫,多數位于java.awt、javax.swing包及其子包下,在這些包下提供了實現圖形用戶界面的主要類。其中在java.awt包及其子包下的一些類屬于原有AWT組件的底層實現,而在javax.swing包及其子包下的一些類則屬于Swing后期擴展的,這也從側面反映出Swing組件對AWT組件的依賴性,接下來通過一張圖來描述Swing組件的主要類,如圖1所示。
圖1 Swing組件繼承關系
從圖1可以看出,Swing組件的所有類都繼承自Container類,然后根據GUI開發的功能擴展了2個主要分支:容器分支(包括Window窗口和Panel面板)和組件分支。其中,容器分支就是為了實現圖形用戶界面窗口容器而設計的,而組件分支則是為了實現向容器中填充數據、元素以及人機交互組件等功能。
在Swing組件類中,常用的頂級容器類包括有JApplet、JFrame和JDialog;常用的組件類中,AbstractButton類及其子類就是用來定義按鈕常見行為的工具類,JTextComponent類及其子類就是用來定義文本內容編輯區域的工具類。
猜你喜歡: