Java GUI编程12

您所在的位置:网站首页 java窗体编程 Java GUI编程12

Java GUI编程12

2024-07-14 21:15| 来源: 网络整理| 查看: 265

认识JCheckBox

程序可以通过JRadioButton实现单选按钮的功能,那么如果要实现复选框的功能,则可以使用JCheckBox完成。JCheckBox的常用方法下表所示。

序号方法描述1public JCheckBox(Icon icon)创建有一个图标、最初未被选定的复选框。2public JCheckBox(Icon icon, boolean selected)创建一个带图标的复选框,并指定其最初是否处于选定状态。3public JCheckBox(String text)创建一个带文本的、最初未被选定的复选框。4public JCheckBox(String text, boolean selected)创建一个带文本的复选框,并指定其最初是否处于选定状态。5JCheckBox(String text, Icon icon)创建带有指定文本和图标的、最初未选定的复选框。6JCheckBox(String text, Icon icon, boolean selected)创建一个带文本和图标的复选框,并指定其最初是否处于选定状态。

JCheckBox的其他使用方法和JRadioButton的操作类似。 实例:定义复选框

package java1.swing.buttons; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JCheckBox; import javax.swing.BorderFactory; class MyCheckBox { // 窗体 private JFrame frame = new JFrame("使用复选框"); // 定义窗体 private Container cont = frame.getContentPane(); // 得到窗体容器 private JCheckBox jcb1 = new JCheckBox("复选框1"); // 定义一个复选框 private JCheckBox jcb2 = new JCheckBox("复选框2"); // 定义一个复选框 private JCheckBox jcb3 = new JCheckBox("复选框3"); // 定义一个复选框 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() { public void windowClosing(WindowEvent arg) { System.exit(1); } }); } } public class JCheckBoxDemo01 { public static void main(String args[]) { new MyCheckBox(); } }

运行结果: 多选框 对比之前的单选按钮样式: 单选按钮样式 我们可以发现与单选按钮样式不同的是多选框是正方形的,单选按钮时圆形的。这和其他系统中常见的单选按钮,复选框样式都是一样的。 选择的时候样式对比:

选中单选按钮时: 选中单选按钮时

选中复选框时: 选中复选框时 对比发现,选中单选按钮时,会在单选按钮中显示黑原点,而复选框中则会打钩。

JCheckBox事件处理

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

package java1.swing.buttons; import java.io.File; import java.awt.Container; import java.awt.GridLayout; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.awt.event.ItemListener; import java.awt.event.ItemEvent; import javax.swing.JFrame; import javax.swing.ImageIcon; import javax.swing.JPanel; import javax.swing.JCheckBox; import javax.swing.BorderFactory; //实现ItemListener接口方式监听复选框事件 class MyItemListener implements ItemListener { private String right ="D:\\dev\\java\\my\\icon\\my\\right.png"; //实现ItemListener的方法,只有一个方法。 public void itemStateChanged(ItemEvent e) { //得到产生的事件,这里只有复选框所以可以强制类型转换。 JCheckBox jcb = (JCheckBox) e.getItem(); // 得到产生的事件 // 如果被选中了,则显示正确的图片 if (jcb.isSelected()) { //显示打钩 jcb.setIcon(new ImageIcon(right)); } else { //取消图片显示 jcb.setIcon(null); } } } class MyCheckBox1 { private JFrame frame = new JFrame("多选框事件处理"); // 定义窗体 private Container cont = frame.getContentPane(); // 得到窗体容器 private JCheckBox jcb1 = new JCheckBox("CSDN"); // 定义一个复选框 private JCheckBox jcb2 = new JCheckBox("Google"); // 定义一个复选框 private JCheckBox jcb3 = new JCheckBox("GitHub"); // 定义一个复选框 private JPanel pan = new JPanel(); public MyCheckBox1() { pan.setBorder(BorderFactory.createTitledBorder("请选择你常用的网站")); pan.setLayout(new GridLayout(1, 3)); // 设置组件的排版 pan.add(this.jcb1); // 增加组件 pan.add(this.jcb2); // 增加组件 pan.add(this.jcb3); // 增加组件 jcb1.addItemListener(new MyItemListener()); jcb2.addItemListener(new MyItemListener()); jcb3.addItemListener(new MyItemListener()); cont.add(pan); // 将面板加入到容器之中 this.frame.setSize(400, 100); this.frame.setVisible(true); //监听窗体关闭事件 this.frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent arg) { System.exit(1); } }); } } public class JCheckBoxDemo02 { public static void main(String args[]) { new MyCheckBox1(); } }

打钩图片:right.png 打钩图片 打叉图片: wrong.png 打叉图片 运行结果: 开始运行结果 点击复选框,则发生ItemListener事件,监听器监听到该事件,并得到发生该事件的复选按钮对象的引用jcb ,然后可以通过引用jcb来设置提示图片:

如选中CSDN按钮,则会在按钮前面显示打钩的图片。 选中CSDN按钮取消选中CSDN,则图片消失 取消选中多选: 多选效果 上面的程序功能与JRadionButton的事件监听操作非常的类似,当选好选型后根据选定的状态为按钮设置显示的图片。


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3