因此我需要使用动作监听器将此循环中的“i”放入此循环之外的变量(我希望在单击按钮时发生这种情况)... 知道怎么做到这个吗?
ArrayList<Kaart> Thand=uno.gethSpeler().getHand();
for(int i=0;i<Thand.size();i++){
btnArr[i].setIcon(Thand.get(i).getImg());
btnArr[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
iKaart=i;
}
});
}
答案 0 :(得分:1)
我想你想要这个 - 只需在循环中创建一个final
变量,从i
获取它的值,这样你就可以在你的匿名内部中引用它类:
ArrayList<Kaart> thand = uno.gethSpeler().getHand();
for(int i=0; i < thand.size(); i++) {
final int copy = i;
btnArr[i].setIcon(thand.get(i).getImg());
btnArr[i].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
iKaart = copy;
}
});
}