信息发布→ 登录 注册 退出

Java 入门图形用户界面设计之复选框

发布时间:2026-01-11

点击量:

Java程序设计 图形用户界面 【十】复选框

复选框JCheckBox

JCheckBox类

方法 作用
public JCheckBox(Icon icon) 创建一个带图标的对象,但不选定
public JCheckBox(Icon icon,boolean selected) 创建一个带图标的对象,并指定其是否选定
public JCheckBox(String text) 创建一个带文本的对象,但不选定
public JCheckBox(String text,boolean selected) 创建一个带文本的对象,并指定其是否选定
public JCheckBox(String text,Icon icon,boolean selected) 创建一个带文本和图标的对象,并指定其是否被选定
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

class MyCheckBox{
    private JFrame frame = new JFrame("一");
    private Container cont =frame.getContentPane();
    private JCheckBox jcb1 = new JCheckBox("A");
    private JCheckBox jcb2 = new JCheckBox("B");
    private JCheckBox jcb3 = new JCheckBox("C");
    private JPanel pan = new JPanel();
    public MyCheckBox(){
        pan.setBorder(BorderFactory.createTitledBorder("请选择"));
        pan.setLayout(new GridLayout(1,3));
        pan.add(this.jcb1);
        pan.add(this.jcb2);
        pan.add(this.jcb3);
        cont.add(pan);
        this.frame.setSize(330,80);
        this.frame.setVisible(true);
        this.frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
    }
}
public class Hello {
    public static void main(String[] args) {
        new MyCheckBox();
    }
}

与单选按钮不同的是,此时选择的地方变成了“□”型,与各个系统中常见的复选框形式是一样的

JCheckBox事件处理

JCheckBox和JRadioButton的事件处理监听接口是一样的,都是使用ItemListener接口

使用ItemListener接口进行事件的监听

方法 作用
void itemStateChanged(ItemEvent e) 当用户取消或选定某个选项时调用

ItemEvent类

方法&常量 类型 作用
public static final int SELECTED 常量 选项被选中
public static final int DESELECTED 常量 选项未被选中
public Object getItem() 方法 返回受事件影响的选项
public int getStateChange() 方法 返回选定状态的类型(已选择或已取消)
import javax.swing.*;
import java.awt.*;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


class MyCheckBox {
    private JFrame frame = new JFrame("一");
    private Container cont = frame.getContentPane();
    private JCheckBox jcb1 = new JCheckBox("A");
    private JPanel pan = new JPanel();
    private JLabel a = new JLabel("未选中");
    public MyCheckBox(){
        pan.setLayout(new GridLayout(1,2));
        pan.add(a);
        pan.add(this.jcb1);
        jcb1.addItemListener(new ItemListener() {
            @Override
            public void itemStateChanged(ItemEvent e) {
                JCheckBox jcb = (JCheckBox) e.getItem();
                if(jcb.isSelected()){
                    a.setText("选中");
                }else {
                    a.setText("未选中");
                }
            }
        });
        cont.add(pan);
        this.frame.setSize(300,100);
        this.frame.setVisible(true);
        this.frame.addWindowListener(new WindowAdapter() {
            @Override
            public void windowClosing(WindowEvent e) {
                super.windowClosing(e);
                System.exit(1);
            }
        });
    }
}
public class Hello {
    public static void main(String[] args) {
        new MyCheckBox();
    }
}

选中选项改变 文字

在线客服
服务热线

服务热线

4008888355

微信咨询
二维码
返回顶部
×二维码

截屏,微信识别二维码

打开微信

微信号已复制,请打开微信添加咨询详情!