禁用一组单选按钮

时间:2014-07-27 12:04:59

标签: java swing awt jradiobutton buttongroup

我有一组单选按钮,定义为' ButtonGroup bg1;'使用' javax.swing.ButtonGroup'包。我想禁用此论坛,以便用户在点击“确定”按钮后无法更改其选择“btnOK'

所以我一直在寻找这些方面的东西:

private void btnOkActionPerformed(java.awt.event.ActionEvent evt) {
   bg1.setEnabled(false);
}

但是,.setEnabled(false)似乎不存在。

2 个答案:

答案 0 :(得分:6)

  

我想禁用此群组

ButtonGroup不是可视组件。它用于为一组按钮创建多重排除范围。

使用相同的ButtonGroup对象创建一组按钮意味着转动" on"其中一个按钮会关闭组中的所有其他按钮。


您必须停用JRadioButton中添加的每个Buttongroup,因为ButtonGroup没有任何此类方法可以停用整个群组。

示例代码:

Enumeration<AbstractButton> enumeration = bg1.getElements();
while (enumeration.hasMoreElements()) {
    enumeration.nextElement().setEnabled(false);
}

答案 1 :(得分:1)

一个简单的解决方案是将按钮放在一个数组中......

    JRadioButton[] buttons = new JRadioButton[]{jbutton1,jbutton2,jbutton3,jbutton4};

迭代数组并改变按钮的状态......

    for (JRadioButton btn : buttons) {
         btn.setEnabled(false);
    }

或者您可以在JPanel中输入单选按钮组并添加该JPanel。

在OK按钮单击事件上,您可以获取组件并迭代循环以禁用它们。

   for(Component c:jpanel1.getComponents()){
        c.setEnabled(false);
   }