所以我需要使用 Action 监听器将“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;
}
});
}
关于java - 使 Action 监听器(数组)更改值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9691737/