22.4.4 如何添加单选按钮
单选按钮也被称为radioButton,它通过JRadioButton类实现。在一些数据库系统软件中,会出现“ 性别”单选按钮,通过选择不同的单选按钮,来实现不同 性别的选择。
【实例22.4】下面通过实例演示如何设计单选按钮。
01 import javax.swing.*;
02 import java.awt.*;
03 ///创建一个顶层框架类
04 ///WIDTH参数是指框架的宽度
05 ///HEIGHT参数是指框架的长度
06 ///setTitle用来设置框架左上角的标题
07 ///setSize用来设置框架的大小
08 ///通过ToolKit类中的方法,将顶层框架放置到屏幕中央
09 ///创建一个容器类对象p,并且在其中添加三个按钮jr1、jr2、jr3
10 ///将p添加到顶层框架中
11 public class Swingtest3
12 {
13 static final int WIDTH=300;
14 static final int HEIGHT=200;
15 public static void main(String[]args)
16 {
17 JFrame jf=new JFrame();
18 jf.setSize(WIDTH, HEIGHT);
19 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
20 jf.setTitle("学生管理系统");
21 Toolkit kit=Toolkit.getDefaultToolkit();
22 Dimension screenSize=kit.getScreenSize();
23 int width=screenSize.width;
24 int height=screenSize.height;
25 int x=(width-WIDTH)/2;
26 int y=(height-HEIGHT)/2;
27 jf.setLocation(x, y);
28 JRadioButton jr1=new JRadioButton("忽略");
29 JRadioButton jr2=new JRadioButton("继续");
30 JRadioButton jr3=new JRadioButton("跳过");
31 Panel p=new Panel();
32 p.add(jr1);
33 p.add(jr2);
34 p.add(jr3);
35 jf.add(p, BorderLayout.SOUTH);
36 jf.show();
37 }
38 }
【代码说明】第17~20行创建窗口并设置窗口的大小和标题,第28~34行创建3个单选按钮,并将其添加到Panel中,第35行指定Panel在窗口中的位置。
【运行效果】运行结果如图22.4所示。
图 22.4 添加没有调整的单选按钮
在上面的情况中,3个单选按钮都可以被选中。如果希望一个单选按钮被选中,其他的自动被置为未选中状态,那就使用到按钮组。
ButtonGroup group=new ButtonGroup();
【实例22.5】下面修改前面的实例看看结果如何。
01 import javax.swing.*;
02 import java.awt.*;
03 ///创建一个顶层框架类
04 ///WIDTH参数是指框架的宽度
05 ///HEIGHT参数是指框架的长度
06 ///setTitle用来设置框架左上角的标题
07 ///setSize用来设置框架的大小
08 ///通过ToolKit类中的方法,将顶层框架放置到屏幕中央
09 ///创建一个容器类对象p,并且在其中添加三个按钮jr1、jr2、jr3
10 ///将p添加到顶层框架中
11 public class Swingtest4
12 {
13 static final int WIDTH=300;
14 static final int HEIGHT=200;
15 public static void main(String[]args)
16 {
17 JFrame jf=new JFrame();
18 jf.setSize(WIDTH, HEIGHT);
19 jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
20 jf.setTitle("学生管理系统");
21 Toolkit kit=Toolkit.getDefaultToolkit();
22 Dimension screenSize=kit.getScreenSize();
23 int width=screenSize.width;
24 int height=screenSize.height;
25 int x=(width-WIDTH)/2;
26 int y=(height-HEIGHT)/2;
27 jf.setLocation(x, y);
28 JRadioButton jr1=new JRadioButton("忽略");
29 JRadioButton jr2=new JRadioButton("继续");
30 JRadioButton jr3=new JRadioButton("跳过");
31 ButtonGroup bg=new ButtonGroup();
32 Panel p=new Panel();
33 bg.add(jr1);
34 bg.add(jr2);
35 bg.add(jr3);
36 p.add(jr1);
37 p.add(jr2);
38 p.add(jr3);
39 jf.add(p, BorderLayout.SOUTH);
40 jf.show();
41 }
42 }
【代码说明】第3 1行的设置和上例不同,这里先设置了一个ButtonGroup,然后将3个单选按钮添加到ButtonGroup中,这样生成的单选按钮组中只能有一项被选中。
【运行效果】运行结果如图22.5所示。
图 22.5 添加调整过的单选按钮