您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關swing組件是什么,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Swing 是 Java 為圖形界面應用開發提供的一組工具包,是 Java 基礎類的一部分。
Swing 包含了構建圖形界面(GUI)的各種組件,如: 窗口、標簽、按鈕、文本框等。
Swing 提供了許多比 AWT 更好的屏幕顯示元素,使用純 Java 實現,能夠更好的兼容跨平臺運行。
為了和 AWT 組件區分,Swing 組件在javax.swing.*包下,類名均以 J 開頭,例如: JFrame、JLabel、JButton等。
推薦課程:Java教程。
Swing組件
一個 Java 的圖形界面,由各種不同類型的“元素”組成,例如: 窗口、菜單欄、對話框、標簽、按鈕、文本框等等,這些“元素”統一被稱為 組件(Component)。
組件按照不同的功能,可分為 頂層容器、中間容器、基本組件。一個簡單窗口的組成,如下層級結構所示:
頂層容器
菜單欄
中間容器
基本組件
基本組件
組件類型的繼承關系:
頂層容器 屬于窗口類組件,繼承自java.awt.Window;
中間容器 和 基本組件 繼承自javax.swing.JComponent。
(1)頂層容器
頂層容器屬于窗口類組件,可以獨立顯示,一個圖形界面至少需要一個窗口,例如:
# | 組件 | 描述 |
1 | JFrame | 一個普通的窗口(絕大多數 Swing 圖形界面程序使用 JFrame 作為頂層容器) |
2 | JDialog | 對話框 |
(2)中間容器
中間容器充當基本組件的載體,不可獨立顯示。中間容器可以添加若干基本組件(也可以嵌套添加中間容器),對容器內的組件進行管理,類似于給各種復雜的組件進行分組管理。最頂層的一個中間容器必須依托在頂層容器(窗口)內。
常用的中間容器(面板):
# | 組件 | 描述 |
1 | JPanel | 一般輕量級面板容器組件 |
2 | JScrollPane | 帶滾動條的,可以水平和垂直滾動的面板組件 |
3 | JSplitPane | 分隔面板 |
4 | JTabbedPane | 選項卡面板 |
5 | JLayeredPane | 層級面板 |
特殊的中間容器:
# | 組件 | 描述 |
1 | JMenuBar | 菜單欄 |
2 | JToolBar | 工具欄 |
3 | JPopupMenu | 彈出菜單 |
4 | JInternalFrame | 內部窗口 |
(3)基本組件
基本組件是直接實現人機交互的組件。
常用的簡單的基本組件:
# | 組件 | 描述 |
1 | JLabel | 標簽 |
2 | JButton | 按鈕 |
3 | JRadioButton | 單選按鈕 |
4 | JCheckBox | 復選框 |
5 | JToggleButton | 開關按鈕 |
6 | JTextField | 文本框 |
7 | JPasswordField | 密碼框 |
8 | JTextArea | 文本區域 |
9 | JComboBox | 下拉列表框 |
10 | JList | 列表 |
11 | JProgressBar | 進度條 |
12 | JSlider | 滑塊 |
選取器組件:
# | 組件 | 描述 |
1 | JFileChooser | 文件選取器 |
2 | JColorChooser | 顏色選取器 |
其他較為復雜的基本組件:
# | 組件 | 描述 |
1 | JTable | 表格 |
2 | JTree | 樹 |
3. 布局管理器
把 Swing 的各種組件(JComponent)添加到面板容器中(JPanel),需要給面板容器指定布局管理器(LayoutManager),明確容器(Container)內的各個組件之間的排列布局方式。
常用的布局管理器:
# | 布局管理器 | 描述 |
1 | FlowLayout | 流式布局,按組件加入的順序,按水平方向排列,排滿一行換下一行繼續排列。 |
2 | GridLayout | 網格布局,把Container按指定行列數分隔出若干網格,每一個網格按順序放置一個控件。 |
3 | GridBagLayout | 網格袋布局,按網格劃分Container,每個組件可占用一個或多個網格,可將組件垂直、水平或沿它們的基線對齊。 |
4 | BoxLayout | 箱式布局,將Container中的多個組件按 水平 或 垂直 的方式排列。 |
5 | GroupLayout | 分組布局,將組件按層次分組(串行 或 并行),分別確定 組件組 在 水平 和 垂直 方向上的位置。 |
6 | CardLayout | 卡片布局,將Container中的每個組件看作一張卡片,一次只能顯示一張卡片,默認顯示第一張卡片。 |
7 | BorderLayout | 邊界布局,把Container按方位分為 5 個區域(東、西、南、北、中),每個區域放置一個組件。 |
8 | SpringLayout | 彈性布局,通過定義組件四條邊的坐標位置來實現布局。 |
9 | null | 絕對布局,通過設置組件在Container中的坐標位置來放置組件。 |
4. 代碼實例: 一個簡單的窗口程序
package com.xiets.swing;import javax.swing.*;public class Main { public static void main(String[] args) { // 1. 創建一個頂層容器(窗口) JFrame jf = new JFrame("測試窗口"); // 創建窗口 jf.setSize(250, 250); // 設置窗口大小 jf.setLocationRelativeTo(null); // 把窗口位置設置到屏幕中心 jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); // 當點擊窗口的關閉按鈕時退出程序(沒有這一句,程序不會退出) // 2. 創建中間容器(面板容器) JPanel panel = new JPanel(); // 創建面板容器,使用默認的布局管理器 // 3. 創建一個基本組件(按鈕),并添加到 面板容器 中 JButton btn = new JButton("測試按鈕"); panel.add(btn); // 4. 把 面板容器 作為窗口的內容面板 設置到 窗口 jf.setContentPane(panel); // 5. 顯示窗口,前面創建的信息都在內存中,通過 jf.setVisible(true) 把內存中的窗口顯示在屏幕上。 jf.setVisible(true); } }
結果展示:
關于swing組件是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。