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