【從零開始學 Java 程式設計】JCheckBox 元件

【從零開始學 Java 程式設計】 線上教學課程目錄,使用 Java 程式語言,開發應用程式。

JCheckBox

JCheckBox 複選框,可以提供很多選項,讓使用者單選或多選

範例

勾選復選框後,點擊下方按鈕,透過 isSelected 判斷複選框是否被勾選,下方輸出資訊視窗將會印出,你選擇了哪些選項。

關鍵程式碼

public void addComponentsToPane(Container pane) {

        pane.setLayout(new BorderLayout());

        Box box = new Box(BoxLayout.X_AXIS);

        JCheckBox checkBox1 = new JCheckBox("checkBox1");
        box.add(checkBox1);

        JCheckBox checkBox2 = new JCheckBox("checkBox2");
        box.add(checkBox2);

        JCheckBox checkBox3 = new JCheckBox("checkBox3");
        box.add(checkBox3);

        pane.add(box, BorderLayout.CENTER);

        JButton jButton = new JButton("印出資料");
        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                data = "";

                if (checkBox1.isSelected()) {
                    data += "checkBox1";
                }

                if (checkBox2.isSelected()) {
                    data += " checkBox2";
                }

                if (checkBox3.isSelected()) {
                    data += " checkBox3";
                }

                if (data.equals("")) {
                    System.out.println("你什麼都沒有選");
                } else {
                    System.out.println("你勾選了: " + data);
                }
            }
        });
        pane.add(jButton, BorderLayout.SOUTH);


    }

完整程式碼

import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class DemoJCheckBox {
    private String data;

    public void addComponentsToPane(Container pane) {

        pane.setLayout(new BorderLayout());

        Box box = new Box(BoxLayout.X_AXIS);

        JCheckBox checkBox1 = new JCheckBox("checkBox1");
        box.add(checkBox1);

        JCheckBox checkBox2 = new JCheckBox("checkBox2");
        box.add(checkBox2);

        JCheckBox checkBox3 = new JCheckBox("checkBox3");
        box.add(checkBox3);

        pane.add(box, BorderLayout.CENTER);

        JButton jButton = new JButton("印出資料");
        jButton.addActionListener(new ActionListener() {
            @Override
            public void actionPerformed(ActionEvent e) {
                data = "";

                if (checkBox1.isSelected()) {
                    data += "checkBox1";
                }

                if (checkBox2.isSelected()) {
                    data += " checkBox2";
                }

                if (checkBox3.isSelected()) {
                    data += " checkBox3";
                }

                if (data.equals("")) {
                    System.out.println("你什麼都沒有選");
                } else {
                    System.out.println("你勾選了: " + data);
                }
            }
        });
        pane.add(jButton, BorderLayout.SOUTH);


    }

    public DemoJCheckBox() {
        JFrame frame = new JFrame("HKT線上教室");
        // 獲取螢幕解析度
        Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
        // 設定視窗大小佔螢幕四分之一
        frame.setSize(dimension.width / 2, dimension.height / 2);

        //設定視窗顯示在螢幕畫面中間位置
        int x = (int) ((dimension.getWidth() - frame.getWidth()) / 2);
        int y = (int) ((dimension.getHeight() - frame.getHeight()) / 2);
        frame.setLocation(x, y);

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//設定關閉可以關掉程式
        //在 Pane 畫面中加入元件
        addComponentsToPane(frame.getContentPane());
//        frame.pack();
        frame.setVisible(true);
    }

    //最一開始程式進入點
    public static void main(String[] args) {
        //使用 invokeLater 確保 UI 在排程執行緒內
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new DemoJCheckBox();
            }
        });
    }
}

參考資料


那這次的課程就介紹到這邊囉~
順帶一提,KT 線上教室,臉書粉絲團,會不定期發佈相關資訊,不想錯過最新資訊,不要忘記來按讚,加追蹤喔!也歡迎大家將這套課程分享給更多人喔。
我們下次再見囉!!!掰掰~

留言

這個網誌中的熱門文章

最新入門零基礎【從零開始學 Java 程式設計】線上教學課程目錄

NS - Nintendo Switch 遊戲比價網

【從零開始學 Kotlin 程式設計】Android Kotlin 線上教學課程目錄