for (j = 0; j < 36; j++)
{
System.out.println("Card:" + j + " Index:" + j);
cardInfo[j].addMouseListener(new MouseAdapter()
{
@Override
public void mouseClicked(MouseEvent e)
{
System.out.println("Index Given:" + j);
makeCard(j);
}
});
}
我有这段代码,想在
中打印出数组元素的编号System.out.println("Index Given:" +j);
cardInfo[]
是一个JLabel数组。
输出总是给出:
Index Given: 36.
答案 0 :(得分:0)
当您调用鼠标单击处理程序时,j已经迭代到36。您正面临与关闭相关的问题(这些天真的很有趣的话题)。试试这个:
for(j = 0; j < 36; j++){
System.out.println("Card:" + j + " Index:" + j);
int indexOfCard = j;
cardInfo[j].addMouseListener(new MouseAdapter(){
@Override
public void mouseClicked(MouseEvent e){
System.out.println("Index Given:" + indexOfCard);
makeCard(indexOfCard);
}
});
}