0

我有一系列 JCheckBox 实例,我想使用 .setSelected(false) 将它们的状态重置为未选中,但我不确定如何执行此操作。我认为它类似于下面的内容,但它不会编译。

ArrayList<JCheckBox> checkboxList; //initialized in this manner earlier in code


    public class MyResetListener implements ActionListener {
    public void actionPerformed(ActionEvent a){
         for(JCheckBox a : checkboxList){
             checkboxList.setSelected(false);
         }
    }
}

我也尝试过使用普通的 for 循环,但不确定如何访问 ArrayList。

    public class MyResetListener implements ActionListener {
    public void actionPerformed(ActionEvent a){
         for(int i=0; i<256; i++){
             checkboxList[i].setSelected(false);
         }
    }
}
4

3 回答 3

3

它应该只是:

for(JCheckBox b: checkboxList)
    b.setSelected(false);

我重命名ab这里a已经定义的 - ActionEvent a

b是您在遍历集合时从集合中获取的变量,因此您必须使用它而checkboxList不是ArrayList.

或者:

for(int i = 0; i < checkboxList.size(); i++)
   checkboxList.get(i).setSelected(false);

Java 类(即ArrayList)本身并不支持该[]操作(尽管您确实获得了扩展,并且数组在技术上也是类,并且它们确实支持它)。ArrayList有一种从中获取元素的get方法。

于 2013-06-02T22:50:07.710 回答
1

您必须使用方法,而不是使用数组下标,例如get()

例如

checkboxList.get(i).setSelected(false);
于 2013-06-02T22:49:55.757 回答
0

如果我让您正确访问 ArrayList 中的元素,您可以使用 get 方法。

您的示例将如下所示:

     for(int i=0; i<256; i++){
         checkboxList.get(i).setSelected(false);
     }
于 2013-06-02T22:51:13.387 回答