Java 复选框
小旺不正经 人气:0Java程序设计 图形用户界面 【十】复选框
复选框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(); } }
选中选项改变 文字
加载全部内容