java-swing-单选框

单选框的实现类是JRadioButton类;
在使用时要引入:

import javax.swing.JRadioButton;

单选框和复选框类似, 都是从JToggleButton 类派生出来的。但不同之处在于,单选框的选框组中,只能有一个处于选中状态。
这里加入一个ButtonGroup类,单选框按钮一般处于一个按钮组中,独自的一个单选框是没有意义的。
在使用单选框时,也要引入:

import javax.swing.ButtonGroup;

在同一个 ButtonGroup 按钮组中的单选按钮,只能有一个单选按钮被选中。因此,如果创建的多个单选按钮其初始状态都是选中状态,则最先加入ButtonGroup 按钮组的单选按钮的选中状态被保留,其后加入到 ButtonGroup 按钮组中的其他单选按钮的选中状态被取消

JRadioButton类的构造方法如下,它有3个参数(可根据需要设置参数,不一定三个都填)
JRadioButton(String text,Icon icon,boolean selected):创建一个具有指定的文本、图像和选择状态的单选按钮。

现在来创建几个单选框:

//创建4个单选框按钮
JRadioButton c1 = new JRadioButton("面筋哥",true);//只传了两个参数
JRadioButton c2 = new JRadioButton("凤姐");
JRadioButton c3 = new JRadioButton("芙蓉姐姐");
JRadioButton c4 = new JRadioButton("电瓶哥");

创建一个按钮组,并将c1,c2,c3,c4加入进去

ButtonGroup group = new ButtonGroup();   //创建一个按钮组
group.add(c1);            //将c1,c2,c3,c4加入到group里
group.add(c2);
group.add(c3);
group.add(c4);

现在四个按钮就是 group 组的了。
需要注意的是,group并不能加入到面板或者窗口中去,只能将单选框按钮一个一个的加到面板或窗口中去。

现在来创建顶层容器,面板(中间容器),并将c1,c2,c3,c4加入到面板。

JFrame j1 = new JFrame("Box");   //顶层容器j1
j1.setSize(200, 200);          //设置窗口大小
JPanel j2 = new JPanel();       //面板(中间容器)

JLabel l1 = new JLabel("你更喜欢哪个人:"); //这是另外创建的一个标签,也加入到面板里吧。
j2.add(l1); //标签l1加到面板j2

j2.add(c1); //将c1,c2,c3,c4加入到面板(中间容器)
j2.add(c2);
j2.add(c3);
j2.add(c4);

最后将面板j2加入到窗口j1,运行程序看看。

j1.add(j2);	  //面板j2加入到窗口j1
j1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //这两个前面提到过便不再赘述
j1.setVisible(true);

运行结果:
单选框运行结果

下面是完整的可运行的源代码

import javax.swing.JFrame;   //顶层容器 (框架)
import javax.swing.JPanel; //中间容器 
import javax.swing.JLabel;   //标签
import javax.swing.JRadioButton; //单选框实现类
import javax.swing.ButtonGroup;  //按钮组类

public class text_JRadioButton
{
	public static void main(String[] args) 
	{	
		JFrame j1 = new JFrame("Box");   //顶层容器
		j1.setSize(200, 200);          //窗口大小
		JPanel j2 = new JPanel();       //中间容器

		JRadioButton c1 = new JRadioButton("面筋哥",true);
		JRadioButton c2 = new JRadioButton("凤姐");
		JRadioButton c3 = new JRadioButton("芙蓉姐姐");
		JRadioButton c4 = new JRadioButton("电瓶哥");
		
		ButtonGroup group = new ButtonGroup();
		group.add(c1);
		group.add(c2);
		group.add(c3);
		group.add(c4);
	
		JLabel l1 = new JLabel("你更喜欢哪个人:");
		j2.add(l1);
		j2.add(c1);
		j2.add(c2);
		j2.add(c3);
		j2.add(c4);
		
		j1.add(j2);	
		j1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		j1.setVisible(true);
	}
}
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页