首页 > 编程笔记 > Java笔记 阅读:76

Java按钮控件详解(JButton、JCheckButton和JRadioButton)

按钮是图形用户界面最常用、最基本组件,经常用到的按钮有 JButton、JCheckBox、JRadioButton 等,这些按钮类均是 AbstractButton 类的子类或者间接子类。

AbstractButton 中定义了各种按钮所共有的一些方法,AbstractButton 类常用的成员方法有以下几个:
按钮类之间的继承关系如下图所示:


图 1 按钮组件类之间的继承关系图

下面分别对几个常用的按钮类进行简单介绍。

Java JButton

JButton 是最常用、最简单的按钮,可分为有无标签和图标几种情况。

JButton 类常用的构造方法如下:
创建按钮对象的示例代码如下:
JButton bt=new JButton("保存",new ImageIcon("save.png"));

Java JCheckBox

JCheckBox 组件被称为复选框。它提供选中/未选中两种状态,并且可以同时选定多个。用户单击复选框就会改变该复选框原来的状态。

JCheckBox 组件类的常用构造方法如下:
创建复选框组件对象,可以通过 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();
    }
}
程序执行结果为:

相关文章