在Java Swing中,RadioButton是一个很常用的组件,在使用RadioButton时候,如何知道一组RadioButton是属于一组的呢?只有在同一个按钮组中,多个RadioButton才是互斥的,因此,RadioButton类常常搭配ButtonGroup类一同使用,经常会搭配ButtonGroup使用,例如:

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JRadioButton;
import javax.swing.JTextField;public class ButtonGroupText extends JFrame implements ActionListener {public JRadioButton JrbtnMale,JrbtnFemale;public ButtonGroup Bg;public JTextField JtfShow;public ButtonGroupText() {// TODO Auto-generated constructor stubsuper("ButtonGroup的使用");this.setBounds(400, 400, 400, 200);this.setBackground(Color.lightGray);this.setLayout(new FlowLayout());JrbtnMale=new JRadioButton("男");JrbtnFemale=new JRadioButton("女");          //JRadioButton的对象实例化Bg=new ButtonGroup();                                  //这里注意,ButtonGroup并不是组件,所以不用add进Frame中Bg.add(JrbtnFemale);                                       //为ButtonGroup添加进一组JRadioButtonBg.add(JrbtnMale);this.add(JrbtnFemale);                                    this.add(JrbtnMale);JrbtnFemale.addActionListener(this);           //注册时间监听器事件JrbtnMale.addActionListener(this);this.add(JtfShow=new JTextField(10));this.setVisible(true);
}@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubif(arg0.getActionCommand().equals("男")){                               //接收动作并显示在文本框中JtfShow.setText("选择了“男");}else {JtfShow.setText("选择了”女");}}public static void main(String[] args) {// TODO Auto-generated method stubButtonGroupText example=new ButtonGroupText();}
}

完成的效果如下:

这里要注意一点,ButtonGroup并不是组件,所以不用使用add方法添加进窗体中,如何判断选择了哪一个RadioButton,在这里使用的是GetActionCommand(),获取动作发生组件的内容来比较,本来觉得应该用更简单的方法获取,但是Java中ButtonGroup并没有提供直接获取选中值的方法,ButtonGroup的全部方法如下:

void add(AbstractButton b)———–将按钮添加到组中。
void clearSelection()————清除选中内容,从而没有选择 ButtonGroup 中的任何按钮。
int getButtonCount()———返回此组中的按钮数。
Enumeration getElements()———返回此组中的所有按钮。
ButtonModel getSelection()———返回选择按钮的模型。
boolean isSelected(ButtonModel m)———返回对是否已选择一个 ButtonModel 的判断。
void remove(AbstractButton b)——–从组中移除按钮。
void setSelected(ButtonModel m, boolean b)——为 ButtonModel 设置选择值。

所以只好使用if-else进行逐个的判断了,不过好在一般使用RadioButton的选项并不多,如果找到了更好的方法再更新~(~o ̄▽ ̄)~

Java Swing-ButtonGroup相关推荐

  1. java buttongroup方框_「buttongroup」关于Java Swing ButtonGroup获取用法 - seo实验室

    buttongroup 简单事例代码: Jradiobuttonb1 = new JRadioButton("b1"); JRadioButtonb2 = new JRadioBu ...

  2. 关于Java Swing ButtonGroup获取用法

    简单事例代码: JRadioButtonb1 = new JRadioButton("b1"); JRadioButtonb2 = new JRadioButton("b ...

  3. java swing 例子(一些)

    码码: package swing1;import javax.swing.JFrame; import javax.swing.WindowConstants; public class Empty ...

  4. 18、Java Swing JMenu和JPopupMenu:菜单和弹出式菜单

    菜单由 Swing 中的 JMenu 类实现,可以包含多个菜单项和带分隔符的菜单. 在菜单中,菜单项由 JMenuItem 类表示,分隔符由 JSeparator 类表示. 菜单本质上是带有关联 JP ...

  5. 9、Java Swing JRadioButton:单选按钮组件

    单选按钮与复选框类似都有两种状态,不同的是一组单选按钮中只能有一个处于选中状态. Swing 中 JRadioButton 类实现单选按钮,它与 JCheckBox 一样都是从 JToggleButt ...

  6. java swing单选按钮点击事件_java Swing中点击不同单选按钮JPanel中部分区域进行改变,如何实现?。。急啊!...

    展开全部 public class NewJFrame extends javax.swing.JFrame { /** Creates new form NewJFrame */ public Ne ...

  7. java swing 组件技术(上)

    2019独角兽企业重金招聘Python工程师标准>>> 第一次写自己的博客,明知道写得很水,还是努力去写了,希望踏出第一步之后,能有着更好的发展.这几天看了一些资料,总结了一下自己所 ...

  8. JAVA Swing 组件演示***

    下面是Swing组件的演示: package a_swing;import java.awt.BorderLayout; import java.awt.Color; import java.awt. ...

  9. java radio 不可选_在Java Swing中取消选择RadioButtons

    当显示一组JRadioButton时,最初没有选择任何一个(除非您以编程方式强制执行).我想要能够将按钮恢复到该状态,即使在用户已经选择了一个之后,即,不应该选择任何按钮. 然而,使用通常的嫌疑不会提 ...

  10. 基于java+swing+mysql+JFeeChart的企业人力资源管理系统(1)

    文章目录 一,前言 二,项目运行图 (1)主界面(管理员界面) (2)员工资料运行图 (3)全部员工查看运行图 (4)部门管理运行图 (5)岗位管理运行图 (6)工资发放系统运行图 (7)薪酬记录运行 ...

最新文章

  1. transfer 全平台Windows linux mac配置文件转换工具
  2. 使用Jenkins时,如果GIT_COMMIT无变化,跳过构建
  3. php radio样式美化,微信小程序修改radio组件默认样式
  4. 【英语学习】【Level 07】U06 First Time L6 Not your typical experience
  5. 快速学会php视频,PHP视频从入门到精通---适合PHP初学者
  6. linux 释放进程res_linux下查询进程占用的内存方法总结
  7. RabbitMQ 开启WEB管理
  8. 北大计算机基础与应用,北大16秋《计算机基础与应用-第六组》在线作业
  9. pythonmax函数原理_Softmax函数原理及Python实现
  10. mysql in range_mysql 的 RANGE 分区有价值吗?
  11. libyuv 海思平台编译测试
  12. 优酷 DSP 广告投放系统架构实践
  13. excel 第3讲:查找、替换与定位
  14. 微信小程序实现类似微信提现、支付宝提现充值等 “自定义键盘“可实现自定义右下角搜索内容,手写input功能view组件,实现焦点获取事件
  15. Nanopore 纳米孔 测序数据处理 微生物 16S全长 Centrifuge的安装和使用
  16. 【微信小程序】引用echarts 在真机上预览图表模糊的解决办法
  17. 二手书店APP软件开发定制
  18. 转:杰克·韦尔奇:我的生命应该如何度过?
  19. 闲话虚拟仪器开发历史
  20. Mysql中INSTANT使用

热门文章

  1. 蝎虎六看见蚁羊——博山话版笑话 ^_^
  2. 人生苦短 我学python
  3. maya建模走线和大概思路
  4. C语言 | 10 结构体与共同体
  5. 周易六十四卦——大壮卦
  6. 世界卫生组织公布的最佳食品榜
  7. Failed to initialize component [Connector[HTTP/1.1-443] tomcat
  8. MySQL复习资料(出口考试)
  9. 数据可视化”看这篇文章就够了
  10. 十二星座2008年度运势|12星座2008运势