JAVA遇到了ButtonGroup和.values()的问题

时间:2016-11-20 16:49:08

标签: java

第一次发布海报,长时间潜伏。

我遇到以下一段代码的麻烦! 它应该做的是生成2个单选按钮,然后巧妙地决定在打开窗口时要激活哪个按钮。

这有两个部分,一个扩展JtoggleButton.ToggleButtonModel的CarcolorButtonModel和一个CarcolorButtonGroup,它扩展了ButtonGroup。 我遇到问题的方法如下:

public class CarcolorButtonGroup extends ButtonGroup
{

    public void setValue(color c)
    {
        for(AbstractButton b: getElements())
        {
            stuff
        }
    ...

无论我做什么,它都不会运行。即使.values()也无济于事。 有什么想法吗?

编辑后续行动:

我目前得到的错误是:“只能迭代数组或java.lang.Iterable的实例”。我尝试过的另一个解决方案是在方法之前声明枚举和数组,即:

Enumeration<AbstractButton> e = getElements();
AbstractButton[] ara = e.values();

它不喜欢这样,但是,它声称“值()未定义类型枚举。

要清楚,该方法应循环显示每个按钮,并查看其保存的颜色是否与c匹配。由于上述原因,代码在for循环中失败。

2 个答案:

答案 0 :(得分:0)

修正了它。在这种情况下,.values()根本不起作用,在hasmoreElements()中使用.nextElement()控制while循环对它进行排序。

答案 1 :(得分:0)

您可以使用Collections.listEnumeration转换为Iterable的内容。

  

返回一个数组列表,其中包含指定枚举返回的元素,这些元素按枚举返回的顺序排列。此方法提供返回枚举的旧API和需要集合的新API之间的互操作性。

for (AbstractButton b : Collections.list(getElements())) {
    // stuff
}