一、单选按钮
单选按钮是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());
}
}