Swing中单选按钮

一、单选按钮

单选按钮是Swing组件中JRadioButton类的对象,该类是JToggleButton的子类,而JToggleButton是AbstractButton的子类,所以控制单选按钮的诸多方法都是AbstractButton类中的方法。

二、JRadioButton类的常用构造方法

1、public JRadioButton()

2、public JRadioButton(Icon icon)

3、public JRadioButton(Icon icon,boolean selected)

4、public JRadioButton(String text)

5、public JRadioButton(String text,Icon icon)

6、public JRadioButton(String text,Icon icon,boolean selected)

上述构造形式,可以知道在初始化单选框按钮时,可以同时设置单选框按钮的图标、文字及默认是否被选中等属性。

三、按钮组

在Swing中有一个ButtonGroup类,用于产生按钮组。如果将所有单选框按钮放置在按钮组中,则需要实例化一个JRadioButton对象,使用该对象调用add()方法添加按钮。

四、程序代码(例子)

import javax.swing.*;
import java.awt.*;
import java.net.URL;

public class JRadioButtonTest extends JFrame {
    public JRadioButtonTest() {
        // 从类路径中加载图标资源,确保路径以'/'开头表示从类路径的根开始查找
        URL url = getClass().getResource("/Button.jpg");
        Icon icon = new ImageIcon(url);
        // 检查图标是否成功加载,如果图标的宽度或高度为-1,则表示加载失败
        if (icon.getIconWidth() == -1 || icon.getIconHeight() == -1) {
            System.out.println("Failed to load icon");
        }

        // 设置窗体布局为网格布局,3行2列,组件间水平和垂直间距为5像素
        setLayout(new GridLayout(3, 2, 5, 5));

        // 创建三个单选按钮,初始时不设置文本
        JRadioButton jr1 = new JRadioButton();
        JRadioButton jr2 = new JRadioButton();
        JRadioButton jr3 = new JRadioButton();
        // 创建一个按钮组,确保单选按钮组中只能选择一个按钮
        ButtonGroup buttonGroup = new ButtonGroup();
        // 为每个单选按钮设置图标
        jr1.setIcon(icon);
        jr2.setIcon(icon);
        jr3.setIcon(icon);
        // 将单选按钮添加到按钮组中
        buttonGroup.add(jr1);
        buttonGroup.add(jr2);
        buttonGroup.add(jr3);
        // 设置窗体标题
        setTitle("单选按钮组件");

        // 将单选按钮添加到窗体中
        add(jr1);
        add(jr2);
        add(jr3);

        // 设置窗体大小
        setSize(300, 300);
        // 设置关闭窗体时的默认操作,EXIT_ON_CLOSE表示关闭窗体时退出程序
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        // 设置窗体可见
        setVisible(true);
    }

    public static void main(String[] args) {
        // 使用SwingUtilities的invokeLater方法确保GUI的创建和更新在事件调度线程中进行
        SwingUtilities.invokeLater(() -> new JRadioButtonTest());
    }
}

五、程序运行结果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值