C語言中文網 目錄
首頁 > Java Swing 閱讀:2,783

Swing簡介:Swing是什么?

Swing 是新一代的圖形界面工具。使用 Swing 來開發圖形界面比 AWT 更加優秀,因為 Swing 是一種輕量級組件,它采用純 Java 實現,不再依賴于本地平臺的圖形界面,所以可以在所有平臺上保持相同的運行效果,對跨平臺支持比較出色。除此之外,Swing 提供了比 AWT 更多的圖形界面組件,因此可以開發出美觀的圖形界面程序。

Swing 類庫結構

Swing 組件都采用 MVC(Model-View-Controller,即模型-視圖-控制器)的設計,實現 GUI 組件的顯示邏輯和數據邏輯的分離,從而允許程序員自定義 Render 來改變 GUI 組件的顯示外觀,以提供更多的靈活性。

Swing 圍繞 JComponent 組件構建,JComponent 則由 AWT 的容器類擴展而來。Swing 組織結構如圖 1 所示。

Swing類庫組織結構圖
圖1 Swing類庫組織結構圖

從圖 1 可以看出,Swing 組件除了 AbstmctButton 類之外都以 J 開頭。Swing 容器組件直接繼承 AWT 類庫中的容器組件類,其他大部分組件都是繼承 JComponet 組件。組件可以劃分為容器組件和非容器組件,容器組件包括 JFmme 和 JDialog。其中 JComponent 定義了非容器類的輕量級組件(JBntton、JPanel、JMenu 等)。

Swing 包

Swing 類庫由許多包組成,通過這些包中的類相互協作來完成 GUI 設計。其中,javax.swing 包是 Swing 提供的最大包,它包含將近 100 個類和 25 個接口。幾乎所有 Swing 組件都在該包中。表 1 列出了常用的 Swing 包。

表1 Swing常用包
包名稱 描述
javax.swing 提供一組“輕量級”組件,盡量讓這些組件在所有平臺上的工作方式都相同
javax.swing.border 提供圍繞 Swing 組件繪制特殊邊框的類和接口
javax.swing.event 提供 Swing 組件觸發的事件
javax.swing.filechooser 提供 JFileChooser 組件使用的類和接口
javax.swing.table 提供用于處理 javax.swing.JTable 的類和接口
javax.swing.text 提供類 HTMLEditorKit 和創建 HTML 文本編輯器的支持類
javax.swing.tree 提供處理 javax.swingJTree 的類和接口

javax.swing.event 包中定義了事件和事件監聽器類,javax.swing.event 包與 AWT 的 event 包類似。Java.awt.event 和 javax.swing.event 都包含事件類和監聽器接口,它們分別響應由 AWT 組件和 Swing 組件觸發的事件。

例如,當在樹組件中需要節點擴展(或折疊)的通知時,則要實現 Swing 的 TreeExpansionListener 接口,并把一個 TreeExpansionEvent 實例傳送給 TreeExpansionListener 接口中定義的方法,而 TreeExpansionListener 和 TreeExpansionEvent 都是在 swing.event 包中定義的。

雖然 Swing 的表格組件(JTable)在 javax.swing 包中,但它的支持類卻在 javax.swing.table 包中。表格模型、圖形繪制類和編輯器等也都在 javax.swing.table 包中。

與 JTable 類一樣,Swing 中的樹 JTree(用于按層次組織數據的結構組件)也在 javax.swing 包中,而它的支持類卻在 javax.swing.tree 包中。javax.swing.tree 包提供樹模型、樹節點、樹單元編輯類和樹繪制類等支持類。

Swing 容器

創建圖形用戶界面程序的第一步是創建一個容器類以容納其他組件,常見的窗口就是一種容器。容器本身也是一種組件,它的作用就是用來組織、管理和顯示其他組件。

Swing 中容器可以分為兩類:頂層容器和中間容器。

頂層容器是進行圖形編程的基礎,一切圖形化的東西都必須包括在頂層容器中。頂層容器是任何圖形界面程序都要涉及的主窗口,是顯示并承載組件的容器組件。在 Swing 中有三種可以使用的頂層容器,分別是 JFrame、JDialog 和 JApplet。
  1. JFrame:用于框架窗口的類,此窗口帶有邊框、標題、關閉和最小化窗口的圖標。帶 GUI 的應用程序至少使用一個框架窗口。
  2. JDialog:用于對話框的類。
  3. JApplet:用于使用 Swing 組件的 Java Applet 類。

中間容器是容器組件的一種,也可以承載其他組件,但中間容器不能獨立顯示,必須依附于其他的頂層容器。常見的中間容器有 JPanel、JScrollPane、JTabbedPane 和 JToolBar。
  • JPanel:表示一個普通面板,是最靈活、最常用的中間容器。
  • JScrollPane:與 JPanel 類似,但它可在大的組件或可擴展組件周圍提供滾動條。
  • JTabbedPane:表示選項卡面板,可以包含多個組件,但一次只顯示一個組件,用戶可在組件之間方便地切換。
  • JToolBar:表示工具欄,按行或列排列一組組件(通常是按鈕)。

在 Java 程序中容器類都是繼承自 Container 類。中間容器和頂層容器在,AWT 包和 Swing 包中繼承 Container 類的繼承關系,如圖 2 所示。


圖2 容器類組織結構圖

精美而實用的網站,提供C語言、C++、STL、Linux、Shell、Java、Go語言等教程,以及socket、GCC、vi、Swing、設計模式、JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo