6

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

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

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

然而,.setEnabled(false)似乎并不存在。

4

2 回答 2

9

我想禁用这个组

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

使用相同的对象创建一组按钮ButtonGroup意味着“打开”其中一个按钮会关闭组中的所有其他按钮。


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

示例代码:

Enumeration<AbstractButton> enumeration = bg1.getElements();
while (enumeration.hasMoreElements()) {
    enumeration.nextElement().setEnabled(false);
}
于 2014-07-27T12:13:01.773 回答
1

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

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

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

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

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

在确定按钮单击事件上,您可以获取组件并遍历循环以禁用它们。

   for(Component c:jpanel1.getComponents()){
        c.setEnabled(false);
   }
于 2014-07-27T12:10:59.317 回答