一、单选按钮
单选按钮是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()方法添加按钮。
四、程序代码(例子)
java">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());}
}