1
这可能是我的代码中一个愚蠢的问题,但是当的mouseClicked在面板上进行将项目从循环条件是一样的ItemDialog的项目参数?匿名监听器内部的循环
for (Item item: itemsList) {
JPanel panel = new ItemPanel(item);
panel.addMouseListener(new MouseListener() {
public void mouseClicked(MouseEvent arg0) {
new ItemDialog(item);
}
public void mouseEntered(MouseEvent arg0) {}
public void mouseExited(MouseEvent arg0) {}
public void mousePressed(MouseEvent arg0) {}
public void mouseReleased(MouseEvent arg0) {}
});
是的。你的'for-each'循环中没有其他'item',所以引用很简单。 调试IDE中的代码,你看到了什么? – CubeJockey
对于downvoters:这不是一个愚蠢的问题。关于匿名内部类别的混淆范围是一个很好的问题,他们如何保证未来的价值仍然是一样的。 Plus循环范围变量。加上Java-8会自动使变量成为'final'。 –
我不明白downvote。有很多问题都是错误的假设导致错误的,例如stackoverflow.com/questions/8327781/(编辑:或简称:我同意先生勺) – Marco13