因此,我需要使用动作侦听器将此循环中的“ 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;
}
});
}
最佳答案
我想您想要这样做-只需在循环中创建一个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;
}
});
}