首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >选择了哪个JRadioButton

选择了哪个JRadioButton
EN

Stack Overflow用户
提问于 2012-04-09 06:25:11
回答 4查看 6.1K关注 0票数 4

我在一个ButtonGroup中有几个JRadioButtons。

代码语言:javascript
复制
   private ButtonGroup radioGroup= new ButtonGroup();
   private JRadioButton radio1= new JRadioButton("Red");
   private JRadioButton radio2= new JRadioButton("Green");
   private JRadioButton radio3= new JRadioButton("Blue");

   radioGroup.add(radio1);
   radioGroup.add(radio2);
   radioGroup.add(radio3);

如何确认选择了哪一个?

对于System.out.println(radioGroup.getSelection()),我只能得到像javax.swing.JToggleButton$ToggleButtonModel@32b3714这样的东西。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-04-09 06:33:03

从选定的ButtonModel中,您可以获得actionCommand字符串(如果您记得设置它!)。

代码语言:javascript
复制
// code not compiled, run, nor tested in any way
ButtonModel model = radioGroup.getSelection();
String actionCommand = (model == null) ? "" : model.getActionCommand():
System.out.println(actionCommand);

但这只有在您首先设置actionCommand的情况下才能起作用。例如:

代码语言:javascript
复制
// code not compiled, run, nor tested in any way
String[] colors = {"Red", "Green", "Blue"};
JRadioButton[] radioBtns = new JRadioButton[colors.length];
for (int i = 0; i < radioBtns.length; i++) {
   radioBtns[i] = new JRadioButton(colors[i]);
   radioBtns[i].setActionCommand(colors[i]);
   radioGroup.add(radioBtns[i]);
   somePanel.add(radioBtns[i]);
}
票数 6
EN

Stack Overflow用户

发布于 2012-04-09 06:31:30

您看到的是toString方法的默认实现。ButtonGroup#getSelection将返回所选JRadioButtonButtonModel

另请参见How do I get which JRadioButton is selected from a ButtonGroup

票数 3
EN

Stack Overflow用户

发布于 2012-04-09 06:51:49

如果附加了侦听器,则确定来源的一种简单方法是调用ActionEvent.getSource()

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10067053

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档