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