我正在创建一个GUI内存游戏,我有一个带有30个图像的arraylist(在特定的图像类中)和一个带有30个jbuttons的图像(在jframe类中)。我想迭代它们并将第一个imageicon添加到第一个jbutton,依此类推。
private static ArrayList<JButton> btnList = new ArrayList<>();
private static ArrayList<ImageIcon> animalArrayList = Images.initAnimalArrayList();
我对Collection.iterator不熟悉,并且很难弄清楚我需要做些什么来设置它。
非常感谢任何见解
答案 0 :(得分:0)
我建议的答案如下:
int size = btnList.size();
for (int i =0; i < size; i++){
btnList.get(i).setIcon(animalArrayList.get(i));
}
了解迭代器:
Iterator允许您循环遍历类似于for循环的集合,例如:
Iterator itr = btnList.iterator();
while itr.hasNext(){ // while we have not loop through all elements
//get object
JButton btn = itr.next()
//do additional action
}
for循环允许您访问btnList数组列表的相同索引位置,并获取获得所需输出的animalArrayList。
size等于btnList.size()的原因是因为我假设必须存在相同数量的按钮和图像。因此,这适用于任何数组列表大小。