哪个单选按钮一个按钮组中选择
我能做些什么工作再上一个ButtonGroup中选择哪个单选按钮没有这样做:哪个单选按钮一个按钮组中选择
if (jRadioButton1.isSelected()) {
//...
}
if (jRadioButton2.isSelected()) {
//...
}
if (jRadioButton3.isSelected()) {
//...
}
if (jRadioButton4.isSelected()) {
//...
}
你可以得到ButtonModel的用于通过getSelection选择按钮() ButtonGroup的方法。例如,我不知道如何避免在选定的按钮上有条件地分支,除非您有某种从ButtonModel到执行操作的辅助数据结构映射。如果你有这个,那么你可以根据返回的ButtonModel激发这个动作。
如果这是您的意图,ButtonGroup类不提供标识组中当前所选按钮(从AbstractButton继承)的方法。它只有clearSelection()方法来清除组中所有按钮的选定状态(JButton和JMenuItem没有选择/取消选择按钮状态除外)。
一个解决方案,我能想到的是使用一个特殊的变量或场(AbstractButton中,一个JRadioButton或JRadioButtonMenuItem对象,如果它是在一个菜单项),以确定通过更新它的每个AbstractButton中的动作监听器方法中哪一个是当前选择的(使肯定会验证用户的点击次数,因为它可以被触发多次!)。在其他方法中使用变量(通过对其进行类型转换 - 仅用于AbstractButton)。
除此之外,不...你需要做条件分支。
我知道这个问题被寄回很久了。无论如何,我们可以使用setActioncommand函数。在创建单选按钮的同时,可以调用setActionCommand来设置操作命令值,该值可用于引用所选的单选按钮。
jRadioButton1.setActionCommand("jRadioButton1"); jRadioButton2.setActionCommand("jRadioButton2") . . String button_name = ((JToggleButton.ToggleButtonModel)button_group.getSelection()).getActionCommand();
对于处理按钮组BG,您可以通过调用按钮组的getElements()方法,并使用作为Collections.list()方法的参数,只需要保存获取的按钮导致一个数组列表。从那里检索正确的按钮相对简单。
ArrayList<AbstractButton> arl = Collections.list(bg.getElements());
for (AbstractButton ab : arl) {
JRadioButton jrb = (JRadioButton) ab;
if (jrb.isSelected()) {
return jrb;
}
}
给它添加一些描述 – piyushj 2016-06-16 04:59:39
如何转换正在返回的按钮模型。进入像jRadioButton1或jRadioButton2? – user225269 2011-03-10 03:16:40
您无法将其转换;该模型用于为JRadioButton供电。这是一个模型视图控制器分离。你想完成什么,我可以告诉你如何去做。 – I82Much 2011-03-10 03:43:32
尝试:获取当前选定的单选按钮。或者通过某种方式让你知道哪一个是它,并根据它执行不同的代码行。 – Yokhen 2013-04-04 00:09:28