2013-06-02 16 views
0

我有一系列的JCheckBox实例,我想重置他们的状态,使用.setSelected(false)取消选中,但我不确定如何做到这一点。我认为它是下面的东西,但它不会编译。如何通过ArrayList增加并更改其状态?

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); 
     } 
    } 
} 

我试着用一个正常的循环,但不确定如何以任何方式访问ArrayList。

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

什么是错误您收到?顺便说一句,第一个例子是完全正确的,如果你将循环变量重命名为'a'以外('a'已经被定义为函数参数中的一个ActionEvent)。 –

回答

1

代替使用数组下标必须使用方法,如get()

例如

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

应该仅仅是:

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

我改名aba已经在这里定义 - ActionEvent a

b是您从集合中获得的变量,因此您必须使用该变量而不是checkboxList,这是整个ArrayList

或者:

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

Java类(即ArrayList)本身不支持[]操作(虽然你得到扩展和阵列技术类为好,和他们做支持它)。 ArrayList有一个get method从它获取元素。

0

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

你举的例子会看起来像:

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