加入到ButtonGroup中的JRadioButton选择问题

一组JRadioButton按钮添加到一个ButtonGroup中,现在我想知道在这一组JRadioButton中哪一个被选中了。不要给JRadioButton添加监听器... 一组JRadioButton按钮添加到一个ButtonGroup中,现在我想知道在这一组JRadioButton中哪一个被选中了。
不要给JRadioButton添加监听器的答案哈,JRadioButton太多了 一一添加监听器不可取啊,有没有其他的办法呢?
我试了ButtonGroup.isSelected(JRadioButton.getModel()) == true这种方式,但是不能判断啊 不知道为什么
请高人解答
呵呵 ~首先谢谢二位 冰下沸水的方法一直行不通 错误原因总是出在Enumeration<AbstractButton> 这里提示错误为can't resolve symbol 导入了import java.util.Enumeration包也不行 不知道是不是IDE的缘故 因为貌似在NetBean环境下是完全可以的 郁闷~
同时谢谢 IT_Ivy。。
展开
 我来答
冰下沸水
推荐于2018-03-20 · TA获得超过738个赞
知道小有建树答主
回答量:178
采纳率:0%
帮助的人:232万
展开全部
今天试了下,这样子来:

Enumeration<AbstractButton> enu = buttonGroup.getElements();
while (enu.hasMoreElements()) {
AbstractButton radioButton = enu.nextElement();
System.out.println(radioButton.getName() + " : "
+ radioButton.isSelected());
}

这个radioButton.isSelected()就可以判断了。。如果不明白,HI我。我一直在的~
IT_Ivy
2010-07-21 · 超过11用户采纳过TA的回答
知道答主
回答量:18
采纳率:0%
帮助的人:30.4万
展开全部
import ...

public class RadioButtonTest extends JPanel implements ItemListener {

ButtonGroup group;
ArrayList<ButtonModel> buttonModels;

public RadioButtonTest() {
this.setLayout(new FlowLayout());
group = new ButtonGroup();
buttonModels = new ArrayList<ButtonModel>();
for (int i = 1; i <= 5; i++) {
JRadioButton jrb1 = new JRadioButton("jrb" + String.valueOf(i));
jrb1.setActionCommand(String.valueOf(i));
jrb1.addItemListener(this);
group.add(jrb1);
buttonModels.add(jrb1.getModel());
this.add(jrb1);
}
}

public static void main(String[] args) {
RadioButtonTest radioButtonTest = new RadioButtonTest();

JFrame frame = new JFrame("TEST");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.getContentPane().add(radioButtonTest);
frame.setSize(500, 100);
frame.setVisible(true);

}

public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
//方法1
JRadioButton jrb = (JRadioButton) e.getSource();
System.out.println(jrb.getActionCommand());
//方法2
ButtonModel selection = group.getSelection();
System.out.println(selection.getActionCommand());
//方法3
for (int i = 0; i < buttonModels.size(); i++) {
if (group.isSelected(buttonModels.get(i))) {
System.out.println(buttonModels.get(i).getActionCommand());
break;
}
}
}
}
}

不知道对你有没有帮助

1.radioButton再多也是可以添加监听器的吧,像我上面的代码;可以使用setActionCommand来帮助识别radioButton
2.如果你要通过group.isSelected来判断,前提是你记录了你的radioButton的ButtonModel,这样才能判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式