首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

Java Swing 使用 JCheckBox 陣列動態建立多個複選框範例

     編輯:Java 程式設計入門

程式功能

示範如何使用陣列管理多個 JCheckBox 元件:以字串陣列定義標籤文字,建立對應的 JCheckBox[],透過 GridLayout(0, 4)(4 欄、列數自動)自動排版於 JPanel,最後置於視窗中央區域。

核心程式碼

import java.awt.*;
import javax.swing.*;

public class CheckBoxArrayDemo extends JFrame {
    public CheckBoxArrayDemo() {
        setTitle("複選框陣列示範");
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setBounds(100, 100, 420, 350);
        setLayout(new BorderLayout(10,10));

        JLabel title = new JLabel("你的興趣愛好:");
        add(title, BorderLayout.NORTH);

        JPanel panel = new JPanel(new GridLayout(0, 4, 5, 5)); // 4 欄,間距 5px
        String[] labels = {
            "足球", "籃球", "魔術", "乒乓球", "看電影", "魔獸世界", "CS戰隊",
            "羽毛球", "游泳", "旅遊", "爬山", "唱歌", "寫部落格", "動物世界", "拍照", "彈吉他",
            "讀報紙", "飆車", "逛街", "逛商場", "麻將", "看書", "上網看資料", "新聞", "軍事",
            "八卦", "養生", "飲茶"
        };
        JCheckBox[] boxes = new JCheckBox[labels.length];
        for (int i = 0; i < labels.length; i++) {
            boxes[i] = new JCheckBox(labels[i]);
            panel.add(boxes[i]);
        }
        add(new JScrollPane(panel), BorderLayout.CENTER); // 內容過多時可捲動

        setVisible(true);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(CheckBoxArrayDemo::new);
    }
}

關鍵點解析

  • GridLayout(0, 4):行數為 0 表示由佈局管理器自動計算,固定 4 欄。
  • 陣列 boxes 持有所有複選框引用,後續可遍歷取得勾選狀態(如 boxes[i].isSelected())。
  • 外層包裹 JScrollPane 確保選項過多時仍可完整顯示。
  • 使用 Nimbus 外觀(可選)提升視覺一致性。

延伸應用

  1. 取得勾選項目:List<String> selected = Arrays.stream(boxes).filter(JCheckBox::isSelected).map(JCheckBox::getText).toList();
  2. 動態增減:結合 DefaultListModel + JList 或 JPanel + revalidate()/repaint() 實現執行時期增減選項。
  3. 資料綁定:搭配 ActionListener 即時更新後端模型。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved