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