我有一个JRadioButton
,我必须将所选项目设置为12,然后如果已经达到12,则会禁用/灰显其他选项。
我所知道的是,如果您将JRadioButton
添加到ButtonGroup
中,那么会将所选项目设置为1,但不会设置为多个,这是我的目标。
这可能吗?有没有方法/方法如何做到这一点?感谢您的任何建议:)
答案 0 :(得分:2)
创建JRadioButtons的arraylist。每次用户单击JRadioButton(已启用)时,请浏览列表并计算已启用的JRadioButtons数量。如果计数大于或等于12,则禁用所有其他radioButtons,直到用户取消选择。
这只是解决这个问题的众多方法之一,
希望这有帮助。
//initiate jradiobutton arraylist (this will be a field at top of class)
buttons = new ArrayList<JRadioButtons>();
//Create buttons with a listener attached
JRadioButton b1 = new JRadioButton("RadioButton One");
b1.setActionListener(myActionListener);
b1.setActionCommand("select");
buttons.add(b1);
//Add rest of buttons in the same way
JRadioButton b2...
//Add the radio buttons to your panel and such
现在,当用户点击您的某个按钮时,您的actionlistener将会触发,您可以在这里检查启用的数量
public void actionPerformed(ActionEvent e){
//Check if action was a jradiobutton
if(e.getActionCommand().equals("select")){
int count = 0;
//Here check the amount of buttons selected
for(JRadioButton button: buttons){
if(button.isSelected()) count++;
}
//Now check if count is over 12
if(count > 12){
for(JRadioButton button: buttons){
//if the button trying to activate when 12 already have been, disable it
if(button.equals(e.getSource()) button.setSelcted(false);
}
}
}
}
这应该在已经选中时禁用按钮,并且只允许用户选择arraylist中的12个按钮。
答案 1 :(得分:2)
Content-Type
是错误的类型,因为用户希望仅选择一个。
您最好将JRadioButton
与SSCCE中的自定义JCheckBox
一起使用:
ActionListener