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();

}

}

其运行结果如下:

当任意选中一个复选框时:

可以选中多个复选框,其运行结果如下:

(0)

相关推荐

  • Servlet | Request 对象获取请求参数的通用方式

    -1.解决中文乱码问题 在开始之前,先解决中文乱码的问题.在Tomcat 8以上已经解决了GET方法中文乱码问题,但是POST方式的乱码没有解决,我们只需要在代码中加一行: request.setCh ...

  • Java学习-注解和反射

    注解 java.Annotation Annotation的作用:可以呗其他程序读取 Annotation的格式 注解是:@注释名 在代码中存在,还可以添加一些参数 ​@SuppressWarning ...

  • Java学习-多线程

    多线程 任务(Task).进程(Process).线程(Thread) 进程的创建 1.继承Thread类 自定义线程类继承Thread类 重写run()方法,编写线程执行体 创建线程对象,调用sta ...

  • Java学习-Mybatis

    Mybatis Maven依赖: <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --> <dependenc ...

  • Java 学习笔记

    您对计算机(电脑)有了解吗? 计算机组成 系统软件 直接和硬件交互的软件叫系统软件,例如 win7.win8.Linux.mac等操作系统 应用软件 通常在运行在系统软件上,也就是在系统软件上开发的软 ...

  • Java学习-126.2048代码

    本篇帖的是按钮的代码. 因为按钮比较多,包括菜单项的动作,为了区分,我用了两个内部类来实现这两部分代码. //本类是Game_2048类的内部类,用来实现上.下.左.右四个按钮,以及重新开始和退出游戏 ...

  • Java学习—125.2048代码

    本篇帖的是部分动作代码. 每个方法前都有注释说明本方法的功能. //随机选取一个位置,并填入数字2.如果此位置中已有数字,那么换一个位置. public void rule(){ x=ran.next ...

  • Java学习—124.2048代码

    游戏的主界面的代码在类game_2048中. 本类主要包括两个方面: 一是布局. 二是动作,按钮的动作. 其中,动作又有菜单动作,按钮动作.而按钮动作又有多方面,在下一篇的代码中会有注释说明. 本篇帖 ...

  • Java学习—123.2048小游戏

    好久又没出现了,还好后台也没几条信息,我也不至于很愧疚,只是人气不太旺盛,好尴尬 最近稍微有点忙,也是自己放松了一下,哈哈...... 抱歉一下,之前给我信息的各位亲,由于时间有点久,我就不一一回复了 ...

  • Java学习—问题

    上个月参加了一个考试,然后面试,准备.折腾了好久时间,身心俱疲,也没有更新公众号,后台有好多留言,但时间已过,我已经回不了了 请各位见谅...... 在后台看到一个小伙伴的留言,要解决一个问题, 本篇 ...