我在 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/