Java按钮控件详解(JButton、JCheckButton和JRadioButton)
按钮是图形用户界面最常用、最基本组件,经常用到的按钮有 JButton、JCheckBox、JRadioButton 等,这些按钮类均是 AbstractButton 类的子类或者间接子类。
AbstractButton 中定义了各种按钮所共有的一些方法,AbstractButton 类常用的成员方法有以下几个:
按钮类之间的继承关系如下图所示:

图 1 按钮组件类之间的继承关系图
下面分别对几个常用的按钮类进行简单介绍。
JButton 类常用的构造方法如下:
创建按钮对象的示例代码如下:
JCheckBox 组件类的常用构造方法如下:
创建复选框组件对象,可以通过 JCheckBox 类提供的成员方法设定复选框的属性。如通过 setText(String text) 方法设定文本提示信息,通过 setSelected(boolean b) 方法设定复选框的状态,通过 isSelected() 方法获取按钮当前的状态。
如果要实现多选一的功能,需要利用 javax.swing.ButtonGroup 类实现。这个类是一个不可见的组件,表示一组单选按钮之间互斥的逻辑关系,实现诸如 JRadioButton 等组件的多选一功能。
下面通过一个案例演示这几种按钮类的使用方法。
【实例】按钮类的使用。创建窗口并在窗口分别添加 JButton、JCheckButton 和 JRadioButton 三种不同的按钮。
AbstractButton 中定义了各种按钮所共有的一些方法,AbstractButton 类常用的成员方法有以下几个:
- Icon getIcon() 和 setIcon(Icon icon):获得和修改按钮图标;
- String getText() 和 setText(String text):获取和修改按钮文本信息;
- setEnabled(boolean b):启用或禁用按钮;
- setHorizontalAlignment(int alignment):设置图标和文本的水平对齐方式。
按钮类之间的继承关系如下图所示:

图 1 按钮组件类之间的继承关系图
下面分别对几个常用的按钮类进行简单介绍。
Java JButton
JButton 是最常用、最简单的按钮,可分为有无标签和图标几种情况。JButton 类常用的构造方法如下:
- JButton():创建一个无文本也无图标的按钮;
- JButton(String text):创建一个具有文本提示信息但没有图标的按钮;
- JButton(Icon icon):创建一个具有图标、但没有文本提示信息的按钮;
- JButton(String text, Icon icon):创建一个既有文本提示信息又有图标的按钮。
创建按钮对象的示例代码如下:
JButton bt=new JButton("保存",new ImageIcon("save.png"));
Java JCheckBox
JCheckBox 组件被称为复选框。它提供选中/未选中两种状态,并且可以同时选定多个。用户单击复选框就会改变该复选框原来的状态。JCheckBox 组件类的常用构造方法如下:
- JCheckBox():构造一个无标签的复选框;
- JCheckBox(String text):构造一个具有提示信息的复选框;
- JCheckBox(String text,boolean selected):创建具有文本的复选框,并指定其最初是否处于选定状态。
创建复选框组件对象,可以通过 JCheckBox 类提供的成员方法设定复选框的属性。如通过 setText(String text) 方法设定文本提示信息,通过 setSelected(boolean b) 方法设定复选框的状态,通过 isSelected() 方法获取按钮当前的状态。
Java JRadioButton
JRadioButton 组件被称为选项按钮。在 Java 中,JRadioButton 组件与 JCheckBox 组件功能完全一样,只是图形不同,复选框为方形图标,选项按钮为圆形图标。如果要实现多选一的功能,需要利用 javax.swing.ButtonGroup 类实现。这个类是一个不可见的组件,表示一组单选按钮之间互斥的逻辑关系,实现诸如 JRadioButton 等组件的多选一功能。
下面通过一个案例演示这几种按钮类的使用方法。
【实例】按钮类的使用。创建窗口并在窗口分别添加 JButton、JCheckButton 和 JRadioButton 三种不同的按钮。
import java.awt.*;
import javax.swing.*;
public class ButtonDemo extends JFrame {
public ButtonDemo() {
this.setTitle("三种按钮使用示例");
// 设置布局管理器
this.setLayout(new FlowLayout());
// 创建 3 个面板对象
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
JPanel p3 = new JPanel();
// 创建 3 个复选框对象
JCheckBox cb1 = new JCheckBox("复选框 1");
JCheckBox cb2 = new JCheckBox("复选框 2");
JCheckBox cb3 = new JCheckBox("复选框 3");
// 添加组件到面板 p1
p1.add(cb1);
p1.add(cb2);
p1.add(cb3);
// 创建 3 个单选按钮对象
JRadioButton rb1 = new JRadioButton("单选钮 1");
JRadioButton rb2 = new JRadioButton("单选钮 2");
JRadioButton rb3 = new JRadioButton("单选钮 3");
// 创建按钮组对象
ButtonGroup gpl = new ButtonGroup();
// 把单选钮对象添加到按钮组中,实现单选钮的多选一功能
gpl.add(rb1);
gpl.add(rb2);
gpl.add(rb3);
// 把单选钮添加到面板 p2
p2.add(rb1);
p2.add(rb2);
p2.add(rb3);
// 创建两个普通按钮对象
JButton bt1 = new JButton("按钮 1");
JButton bt2 = new JButton("按钮 2");
// 添加组件到面板 p3
p3.add(bt1);
p3.add(bt2);
// 把面板添加到窗体
this.add(p1);
this.add(p2);
this.add(p3);
this.setSize(300, 200);
this.setVisible(true);
}
public static void main(String[] args) {
ButtonDemo tsb = new ButtonDemo();
}
}
程序执行结果为:
ICP备案:
公安联网备案: