如何通过ArrayList递增并更改其状态?

时间:2013-06-02 22:46:13

标签: java loops arraylist

我有一系列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);
         }
    }
}

3 个答案:

答案 0 :(得分:3)

应该是:

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

我将a重命名为b,因为此处已定义a - ActionEvent a

b是您在迭代时从集合中获取的变量,因此您必须使用它而不是checkboxList,这是整个ArrayList

或者:

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

Java类(即ArrayList)本身不支持[]操作(虽然您确实获得了扩展,并且数组在技术上也是类,并且它们确实支持它)。 ArrayList有一个get method来获取它的元素。

答案 1 :(得分:1)

您必须使用get()

等方法,而不是使用数组下标

e.g。

checkboxList.get(i).setSelected(false);

答案 2 :(得分:0)

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

您的示例将如下所示:

     for(int i=0; i<256; i++){
         checkboxList.get(i).setSelected(false);
     }