Java如何创建JCheckBox组件?

本示例演示了创建JCheckBox组件的各种方法。在这里,您还可以看到用户单击复选框时如何处理事件。

package org.nhooo.example.swing;

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

public class CheckBoxDemoCreate extends JFrame {
    public CheckBoxDemoCreate() throws HeadlessException {
        initialize();
    }

    private void initialize() {
        setSize(300, 300);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLayout(new FlowLayout(FlowLayout.LEFT));

        // 创建带有文本标签的复选框
        JCheckBox checkBoxA = new JCheckBox("Selection A");

        // 创建带有文本标签的复选框 a set the state into checked
        JCheckBox checkBoxB = new JCheckBox("Selection B", true);

        // 创建带有文本标签的复选框 and a default unselected image icon
        ImageIcon icon = new ImageIcon("ledred.png");
        JCheckBox checkBoxC = new JCheckBox("Selection C", icon);
        // 添加动作侦听器以侦听单击并更改图像图标
        // 分别
        checkBoxC.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                JCheckBox checkBox = (JCheckBox) e.getSource();
                if (checkBox.isSelected()) {
                    checkBox.setIcon(new ImageIcon("ledgreen.png"));
                    // 在这里执行其他操作!
                } else {
                    checkBox.setIcon(new ImageIcon("ledred.png"));
                    // 在这里执行其他操作!
                }
            }
        });

        getContentPane().add(checkBoxA);
        getContentPane().add(checkBoxB);
        getContentPane().add(checkBoxC);
    }

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                new CheckBoxDemoCreate().setVisible(true);
            }
        });
    }
}