通常情况下,单选按钮(JRadioButton)显示一个圆形图标,并且在该图标旁设置一些说明文字,一般将多个单选按钮放置在按钮组中,当用户选中某个单选按钮后,按钮组中其他按钮将被自动取消。Swing组件中单选按钮是JRadioButton类,该类是JToggleButton的子类。JRadioButton类的构造方法如表12.7所示。
构造方法 | 功能描述 |
---|---|
public JRadioButton() | 创建一个未选择内容的单选按钮,其文本未设定 |
public JRadioButton(Icon icon) | 创建一个未选择内容的单选按钮,其具有指定的图像但无文本 |
public JRadioButton(Icon icon, boolean b) | 创建一个具有指定图像和选择状态的单选按钮,但无文本 |
public JRadioButton(String text) | 创建一个具有指定文本状态为未选择的单选按钮 |
public JRadioButton(String text, Icon icon) | 创建一个具有指定文本和图像并初始化为未选择的单选按钮 |
表12.7中列出了JRadioButton类的构造方法,接下来通过案例来演示JRadioButton类的使用,如例12-7所示。
例12-7 Demo1207.java
1import java.awt.*;
2import javax.swing.*;
3
4public class Demo1207 {
5 public static void main(String[] args) {
6 JFrame jFrame=new JFrame("JFrame窗口"); //创建Frame窗口
7 JPanel panel=new JPanel(); //创建面板
8 JLabel label1=new JLabel("你喜欢学习哪个技能:");
9 JRadioButton rb1=new JRadioButton("Java",true);
10 JRadioButton rb2=new JRadioButton("大数据");
11 JRadioButton rb3=new JRadioButton("前端");
12 ButtonGroup group=new ButtonGroup();
13 //添加JRadioButton到ButtonGroup中
14 group.add(rb1);
15 group.add(rb2);
16 group.add(rb3);
17 panel.add(label1);
18 panel.add(rb1);
19 panel.add(rb2);
20 panel.add(rb3);
21
22 jFrame.add(panel);
23 jFrame.setBounds(300, 200, 400, 100);
24 jFrame.setVisible(true);
25 jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
26 }
27}
程序的运行结果如图12.9所示。
图12.9中,运行程序先创建JFrame窗体,然后创建3个单选按钮,创建按钮组,将单选按钮添加至按钮组,在按钮组中只能有一个按钮处于“开启”状态,然后把单选按钮添加到Panel容器,最后把Panel容器添加到JFrame窗体。
复选框(JCheckBox)在开发中使用也非常广泛,它有一个方框图标,附加描述性文字,复选框都提供“选中”与“不选中”两种状态。JCheckBox类的表示复选框,同样继承于AbstractButton抽象类,JCheckBox类的构造方法如表12.8所示。
构造方法 | 功能描述 |
---|---|
public JCheckBox() | 创建一个没有文本或图标,且初始化状态未被选定的复选框 |
public JCheckBox(Icon icon) | 创建以icon为图标,初始状态未被选中的复选框 |
public JCheckBox(Icon icon, boolean b) | 创建以icon为图标的复选框,并设置初始状态是否被选中 |
public JCheckBox(String text) | 创建一个以text文本、初始状态未被选定的复选框 |
public JCheckBox(String text, boolean b) | 创建一个以text文本复选框,并设置其最初是否处于选定状态 |
表12.8中列举出了JCheckBox类的构造方法,接下来通过案例来演示JCheckBox类的使用,如例12-8所示。
例12-8 Demo1208.java
1import java.awt.*;
2import javax.swing.*;
3
4public class Demo1208 {
5 public static void main(String[] args) {
6 JFrame jFrame = new JFrame("JFrame窗口"); // 创建JFrame窗体
7 JLabel jLabel=new JLabel("您的爱好是:");
8 jFrame.add(jLabel);
9 jFrame.add(new JCheckBox("读书")); // 创建复选框并添加到JFrame
10 jFrame.add(new JCheckBox("旅游"));
11 jFrame.add(new JCheckBox("摄影"));
12 jFrame.setLayout(new FlowLayout());
13 jFrame.setSize(350, 150);
14 // 设置窗体关闭方式
15 jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
16 jFrame.setVisible(true);
17 }
18}
程序的运行结果如图12.10所示。
图12.10中,运行程序先创建JFrame窗体,然后创建三个复选框并添加到JFrame窗体,创建的是带文本的、最初未被选定的复选框,可以单击复选框进行勾选。