您好,登錄后才能下訂單哦!
Swing是一個用于開發Java應用程序用戶界面的開發工具包(GUI工具包),是JAVA基礎類的一部分;它包括了圖形用戶界面(GUI)器件,如:文本框,按鈕,分隔窗格和表。
Swing提供許多比AWT更好的屏幕顯示元素。它們用純Java寫成,所以同Java本身一樣可以跨平臺運行,這一點不像AWT。它們是JFC的一部分。它們支持可更換的面板和主題(各種操作系統默認的特有主題),然而不是真的使用原生平臺提供的設備,而是僅僅在表面上模仿它們。這意味著你可以在任意平臺上使用JAVA支持的任意面板。輕量級組件的缺點則是執行速度較慢,優點就是可以在所有平臺上采用統一的行為。
Swing 類庫結構
Swing 組件都采用 MVC(Model-View-Controller,即模型-視圖-控制器)的設計,實現 GUI 組件的顯示邏輯和數據邏輯的分離,從而允許程序員自定義 Render 來改變 GUI 組件的顯示外觀,以提供更多的靈活性。
Swing 圍繞 JComponent 組件構建,JComponent 則由 AWT 的容器類擴展而來。
Swing類庫組織結構圖:
可以看出,Swing 組件除了 AbstmctButton 類之外都以 J 開頭。Swing 容器組件直接繼承 AWT 類庫中的容器組件類,其他大部分組件都是繼承 JComponet 組件。組件可以劃分為容器組件和非容器組件,容器組件包括 JFmme 和 JDialog。其中 JComponent 定義了非容器類的輕量級組件(JBntton、JPanel、JMenu 等)。
Swing 包
Swing 類庫由許多包組成,通過這些包中的類相互協作來完成 GUI 設計。其中,javax.swing 包是 Swing 提供的最大包,它包含將近 100 個類和 25 個接口。幾乎所有 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。
● JFrame:用于框架窗口的類,此窗口帶有邊框、標題、關閉和最小化窗口的圖標。帶 GUI 的應用程序至少使用一個框架窗口。
● JDialog:用于對話框的類。
● JApplet:用于使用 Swing 組件的 Java Applet 類。
中間容器是容器組件的一種,也可以承載其他組件,但中間容器不能獨立顯示,必須依附于其他的頂層容器。常見的中間容器有 JPanel、JScrollPane、JTabbedPane 和 JToolBar。
● JPanel:表示一個普通面板,是最靈活、最常用的中間容器。
● JScrollPane:與 JPanel 類似,但它可在大的組件或可擴展組件周圍提供滾動條。
● JTabbedPane:表示選項卡面板,可以包含多個組件,但一次只顯示一個組件,用戶可在組件之間方便地切換。
● JToolBar:表示工具欄,按行或列排列一組組件(通常是按鈕)。
在 Java 程序中容器類都是繼承自 Container 類。中間容器和頂層容器在,AWT 包和 Swing 包中繼承 Container 類的繼承關系,如圖所示(容器類組織結構圖):
以上就是什么是java swing?的詳細內容,更多請關注億速云其它相關文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。