1、Swing簡介:Swing是什麼?
Swing
是新一代的圖形介面工具。使用 Swing 來開發圖形介面比 AWT 更加優秀,因為 Swing 是一種輕量級元件,它採用純 Java 實現,不再依賴於本地平臺的圖形介面,所以可以在所有平臺上保持相同的執行效果,對跨平臺支援比較出色。除此之外,Swing 提供了比 AWT 更多的圖形介面元件,因此可以開發出美觀的圖形介面程式。
Swing 類庫結構
Swing 元件都採用 MVC(Model-View-Controller,即模型-檢視-控制器)的設計,實現 GUI 元件的顯示邏輯和資料邏輯的分離,從而允許程式設計師自定義 Render 來改變 GUI 元件的顯示外觀,以提供更多的靈活性。
Swing 圍繞 JComponent 元件構建,JComponent 則由 AWT 的容器類擴充套件而來。Swing 組織結構如圖 1 所示。
從圖 1 可以看出,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 類的繼承關係,如圖 2 所示。
相關文章
- Java swing是什麼?有什麼作用?Java
- swing
- 好程式設計師Java教程解讀什麼是swing程式設計師Java
- javafx 和swing_整合JavaFX和SwingJava
- Swing怎麼學習?
- Swing結構
- 整合JavaFX和SwingJava
- Dictionary application using SwingAPP
- swing初學,隨筆
- 利用awt與swing進行桌面程式設計(1)程式設計
- Java Swing坦克小遊戲Java遊戲
- 【Swing】JTextField設定游標
- java Swing程式設計入門Java程式設計
- 簡單的list介面和edit介面使用java swing實現Java
- 打算學GUI程式設計,SWING,javaFx,SWT怎麼選?GUI程式設計Java
- 是什麼JSON,簡單介紹JSON
- 在JavaFX程式中嵌入Swing內容Java
- 【Swing】UI外觀風格設定UI
- javafx和swing巢狀使用的方法Java巢狀
- Java圖形化:Swing表格的使用Java
- java Swing詢問對話方塊Java
- Java-GUI 程式設計之 SwingJavaGUI程式設計
- awt&swing 學習筆記(2)筆記
- awt&swing 學習筆記(3)筆記
- javax.swing.JPanel畫板練習Java
- 什麼是JPA?Java Persistence API簡介JavaAPI
- Java-GUI程式設計之Swing元件JavaGUI程式設計元件
- Java學習之Swing Gui程式設計JavaGUI程式設計
- [0]為什麼是SpinalHDL-Spinal簡介
- java程式通過swing呼叫javaFx更新 資料Java
- 用Swing寫了一個Class編輯器:ClassEditor
- 使用Java Swing開發公章、私章圖片(已開源)Java
- JavaGUI——swing元件基礎(七)選項卡窗格JTabbedPaneJavaGUI元件
- [Java Swing] 在mac中不顯示java的dock iconJavaMac
- MindFusion .NET控制元件教程:Charting for Java Swing中的FunctionSeries控制元件JavaFunction
- 比較Java Swing中三種註冊事件的方法Java事件
- GUI 基於Swing製作貪吃蛇小遊戲GUI遊戲
- java小工具,使用Swing展示左樹右表結構Java