Java swing組件介紹

本文鏈接: http://blog.csdn.net/xietansheng/article/details/72814531

Java Swing 圖形界面開發(目錄)

1. Swing簡介

Swing 是 Java 爲圖形界面應用開發提供的一組工具包,是 Java 基礎類的一部分。

Swing 包含了構建圖形界面(GUI)的各種組件,如: 窗口、標籤、按鈕、文本框等。

Swing 提供了許多比 AWT 更好的屏幕顯示元素,使用純 Java 實現,能夠更好的兼容跨平臺運行。

爲了和 AWT 組件區分,Swing 組件在javax.swing.*包下,類名均以 J 開頭,例如: JFrame、JLabel、JButton等。

2. 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);
    }

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

結果展示:

result.png


        <link href="https://csdnimg.cn/release/phoenix/template/css/markdown_views-ea0013b516.css" rel="stylesheet">
            </div>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章