使用Java的JCheckBox组件
2018-02-27欧阳桂秀
欧阳桂秀
摘要
介紹了Java的Swing组件JCheckBox的常用属性、事件响应使用组件JCheckBox显示多个选项,用户可根据需要选择其中的一项或多项。
【关键词】Java JCheckBox 属性 事件响应
1 引言
Java的Swing组件JCheckBox是复选框,其特点是为用户提供多个选项,用户可以选中其中的一项或多项。
它的继承关系如下:
java.awt.Component
4java.awt.Container
L,javax.swing.JComponent
4javax.swing.AbstractButton
4javax.swing.JToggleButton
4javax.swing.JCheckBox
2 JCheckBox组件的常用属性
boolean isSelected():返回是否被选中的状态。返回值为true,选中。返回值为false,没有选中。
void setSelected(boolean b):设置是否选中。
3 事件响应
JCheckBox能够产生ActionEvent和ItemEvent事件。当单击复选框时,产生ActionEvent事件。当复选框的状态发生改变 (即:复选框被选中或者取消选中)时,产生ItemEvent事件。
JCheckBox注册ActionEvent事件监听者的方法是addActionListener(),处理该事件的接口是ActionListener,具体的事件处理的程序放在该接口中的方法public voidactionPerformed(ActionEvent e)里面。
JCheckBox注册ItenrEvent事件监听者的方法是addItemListener(),处理该事件的接口是ItemListener,具体的事件处理的程序放在该接口中的方法public voiditemStateChanged(ItemEvent e)里面。4使用JCheckBox组件的实例
【例1】使用JCheckBox组件,在三种电子产品中进行选择,选择结果显示在标签中。
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Buy extends JAppletimplements ItemListener,ActionListener
{
double cellphone=0,computer=0,mp3=0,sum=0;
Mabel label1,label2,label3,label4;
Mutton button;
JTextField text;
JCheckBox check1,check2,check3;
JPanel contentPane,JPanell,JPanel2,JPanel3,p4;
public void init()
{
contentPane=(JJPanel)getContentPane();
contentPane.setLayout(newGridLayout(4,1));
labell=new JLabel("请选择想要购买的电子产品,计算需要多少钱?”
label2=new JLabel("合计(单位元):");
labe13=new JLabel("");
label4=new JLabel();
button=new JButton("结束购物");
text=new JTextField(30);
checkl=new JCheckBox("手机2100元");
check2=new JCheckBox("电脑4300元");
check3=new JCheckBox("MP3音乐播放器280元");
panel1=new JPanel();
panell.add(label4);
panell.add(label1);
contentPane.add(JPanel1);
panel2-new JPanel();
panel2.add(check1);
panel2.add(check2);
panel2.add(check3);
contentPane.add(pancl2);
panel3=new JPanel();
panel3.add(label2);
panel3.add(label3);
contentPane.add(Panel3);
p4=new JPanel():
p4.add(button);
p4.add(text);
contentPane.add(p4);
check1.addItemListener(this);
check2.addltemListener(this);
check3.addItemListener(this);
button.addActionListener(this);
}
public void itemStateChanged(ItemEvente)
{String str;
if(checkl.isSelected()==true)cellphone=2100;
else cellphone=0;
if(check2.isSelected()==true)computer=4300;
else computer-0;
if(check3.isSelected()==true)mp3-280;
else mp3=0;
sum=cellphone+computer+mp3;
str=String.valueOf(sum);
label3.setText(str);
}
public void actionPerformed(ActionEvente)
{String str2="感谢您的惠顾,期待您的再次光临!";
if(e.getSource()==button)
text.setText(str2);
}
}
本例,Buy类实现了两种接口ItemListener和ActionListener,复选框添加监听者的方法是addItemListener(),对应的事件处理放在方法public void itemStateChanged(ItemEvent e)里,当单击复选框,选中(或取消选中)某些选项时,会执行该方法。按钮添加监听者的方法是addActionListener,对应的事件处理放在方法public void actionPerformed(ActionEvent e)里,当单击“结束购物”按钮时,会执行该方法。
运行结果如图1所示。
5 结束语
通过学习Java的Swing组件JCheckBox,我们可以使用JCheckBox显示多个选项,如果用户选中其中一项或多项,相关的事件处理就会执行。
参考文献
[1]耿祥义.Java2实用教程[M].清华大学出版社,2017.
[2]李刚.疯狂Java讲义[M].北京:電子工业出版社,2017.
[3]明日科技.Java从入门到精通[M].清华大学出版社,2016.