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

Java Swing 利用 JCheckBox 陣列批量建立核取方塊教學範例

     編輯:Java 相關知識

前言

在 Java Swing 開發中,當需要動態產生大量核取方塊時,逐一撰寫程式碼不僅繁瑣,也難以維護。本文示範如何結合 JCheckBox 陣列與 GridLayout 版面管理器,以迴圈方式快速建立並排版多組核取方塊,適合用於興趣選擇、問卷調查等場合。

核心實作步驟

  1. 建立 JPanel 面板物件,作為容器。
  2. 使用 GridLayout(0, 4) 設定四欄、列數自動調整的網格版面。
  3. 準備字串陣列 labels 儲存每個核取方塊的顯示文字。
  4. 宣告 JCheckBox[] 陣列對應上述文字。
  5. 以 for 迴圈遍歷陣列,逐一實例化 JCheckBox 並加入面板。

完整程式碼範例

package cn.edu.xidian.crytoll;

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GridLayout;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JLabel;
import javax.swing.UIManager;

public class CheckBoxArray extends JFrame {

    private static final long serialVersionUID = -5338362310060106193L;
    private JPanel contentPane;
    private JPanel panel;

    public static void main(String[] args) {
        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (Throwable e) {
            e.printStackTrace();
        }
        EventQueue.invokeLater(() -> {
            try {
                CheckBoxArray frame = new CheckBoxArray();
                frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        });
    }

    public CheckBoxArray() {
        setTitle("利用核取方塊陣列批量新增核取方塊");
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 409, 331);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JLabel label = new JLabel("你的喜好有哪些:");
        contentPane.add(label, BorderLayout.NORTH);
        contentPane.add(getPanel(), BorderLayout.CENTER);
    }

    private JPanel getPanel() {
        if (panel == null) {
            panel = new JPanel();
            panel.setLayout(new GridLayout(0, 4)); // 四欄,列數自動

            String[] labels = {
                "足球", "籃球", "魔術", "乒乓球", "看電影", "魔獸世界", "CS戰隊",
                "羽毛球", "游泳", "旅遊", "登山", "唱歌", "寫部落格", "植物世界", "攝影", "彈吉他",
                "讀報紙", "飆車", "逛街", "逛商場", "麻將", "看書", "上網看資料", "消息", "軍事",
                "八卦", "攝生", "吃茶品茗"
            };

            JCheckBox[] boxes = new JCheckBox[labels.length];
            for (int i = 0; i < boxes.length; i++) {
                boxes[i] = new JCheckBox(labels[i]);
                panel.add(boxes[i]);
            }
        }
        return panel;
    }
}

執行結果說明

程式啟動後會顯示一個視窗,上方為提示標籤,下方以四欄網格整齊排列 28 個核取方塊,涵蓋運動、娛樂、休閒等多樣化選項。使用者可任意勾選,介面清晰且易於擴充。

進階應用提示

  • 若需取得勾選結果,可再遍歷 boxes 陣列檢查 isSelected()。
  • 搭配 ActionListener 即時回應使用者操作。
  • 資料來源若來自資料庫或設定檔,只需動態填充 labels 陣列即可,無需修改 UI 邏輯。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved