Java学习——64.JCheckBox
Swing中的按钮组件包括JButton、JRadioButton、JCheckBox,它们都是抽象按钮类AbstractButton类的子类。
今天介绍复选框JCheckBox。
1、复选框类声明
复选框可实现多项选择,其声明如下:
public class JCheckBox extends JToggleButton implements Accessible
{
public JCheckBox (String text)
public JCheckBox (String text, boolean selected)
public JCheckBox (String text, Icon icon, boolean selected)
}
复选框也继承自AbstractButton抽象按钮类。
2、AbstractButton抽象按钮类
此类定义按钮和菜单项的一般行为,声明如下:
public abstract class AbstractButton extends JComponent implements ItemSelectable, SwingConstants
{
public String getText()//获得按钮标题
public void setText(String text) //设置按钮标题
public boolean isSelected()//返回是否选中
public void setSelected(boolean selected)//设置选中状态
public void addActionListener(ActionListener listener) //注册动作事件监听器
public void removeActionListener(ActionListener listern)// 取消动作事件监听器
}
3、简单例题:
本例以“个人爱好”为例,介绍复选框的用法。
几点说明:
(1) 爱好很多,故本例中用复选框数组,每一个复选框数组中的数组元素是一个爱好。
(2) 在构造方法中创建复选框时,要先创建复选框数组。再对其中的每一个数组元素进行实例化。
(3) 复选框可以用注册动作事件监听器,本例中选中爱好之后,将之显示在文本区中。
其完整代码如下:
package learn;
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class JCheckboxlearn extends JFrame implements ActionListener{
private JCheckBox like[];//爱好复选框数组
private JTextArea text;
public JCheckboxlearn(){
super("复选框");
this.setBounds(200,200,300,100);
JPanelpane=new JPanel();
Strings[]={"唱歌","跳舞","画画","打球","其它"};
like=new JCheckBox[s.length];//追寻安徽组
for(int i=0;i<s.length;i++){
like[i]=new JCheckBox(s[i]);//实例化数组元素
pane.add(like[i]);//将数组元素放入面板中
like[i].addActionListener(this);//为每一个复选框注册事件监听器
}
this.getContentPane().add(pane);//将面板加入框架中
this.setVisible(true);
text=new JTextArea();
this.getContentPane().add(text,"South");
}
public void actionPerformed(ActionEvent e){
text.setText("您的爱好是:");
for(int i=0;i<like.length;i++){
if(like[i].isSelected())
text.append(like[i].getText()+".");
}
}
public static void main(String args[]){
new JCheckboxlearn();
}
}
其运行结果如下:
当任意选中一个复选框时:
可以选中多个复选框,其运行结果如下: