java - 如何在 Java 中禁用 ButtonGroup 内的 JRadioButton

标签 java swing jradiobutton

我在 Java 的 ButtonGroup 中有四个 JRatioButton。前两个被启用,另外两个被禁用。如果选择一个特定的 JRatioButton,我需要启用两个禁用的 JRatioButton。

我试图找到按钮的状态并启用禁用的按钮,显然我找到了具有禁用状态的按钮,但没有更改该状态。

private void activateButtons() {
    Enumeration<AbstractButton> elements = myButtonGroup.getElements();
    while (elements.hasMoreElements()) {
          AbstractButton button = (AbstractButton)elements.nextElement();
          if (button.isEnabled()) {
            System.out.println("This button is disabled! The text of the button is: '" + button.getText() + "'");
            button.setEnabled(true);
          }
    }
}

我收到了禁用按钮的文本,但我无法禁用它们。

有什么帮助吗?谢谢!

最佳答案

我不知道您在查找第二组中单选按钮的引用时是否遇到问题,或者您只是无法禁用单选按钮。

对于第一个问题,很简单,只需保留第二组中单选按钮的引用即可。

对于第二个问题,您需要子类化 JRadioButton,因为我发现您不能简单地对单选按钮对象调用禁用。

子类的代码示例如下。

this.editable = editable;
if (editable) {
    this.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
    super.enableEvents(Event.MOUSE_DOWN | Event.MOUSE_UP);
} else {
    this.setCursor(CursorFactory.createUnavailableCursor());
    super.disableEvents(Event.MOUSE_DOWN | Event.MOUSE_UP);
}

关于java - 如何在 Java 中禁用 ButtonGroup 内的 JRadioButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13041264/

相关文章:

Java-将选择的一个单选按钮的值传递到另一框架

java - 为按钮组生成 actionPerformed 事件

java - jcabi 没有登录文件

java - 在 JFrame Java 上在图像上方追踪一条线

Java,从另一个框架/类关闭一个框架

java - 与多个容器共享组件

java - JradioButtons 取消选中

java - 在哪里可以找到 org.springframework.cassandra.config jar。我看到的只是 org.springframework.data.cassandra

Java - 图像闪烁

java - 为什么我收到这个错误? "Repeated column in mapping for entity"