【发布时间】:2017-10-26 09:03:35
【问题描述】:
我想通过mouseClicked 方法访问i。有人可以帮我解决这个问题吗?
这是我的代码片段 -
for (int i = 0; i < 9; i++) {
JLabel jl = new JLabel(String.valueOf(i));
jl.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent evt) {
addAnEventToLabel(i); //Error 1
}
});
}
错误 1 - 从内部类引用的局部变量必须是最终的或有效的最终(在 IDE 中显示) 但没有运行时或编译时异常。
【问题讨论】:
-
是的,错误消息说明了这一点。也许您可以将 i 的值分配给局部 final 变量,然后访问它
-
@Jack 是的,我创建了一个局部最终变量。现在我可以访问它了。
-
@JackFlamp 你能解释一下为什么没有运行时或编译时例外吗?
-
查看下面的 gperches 答案
标签: java mouseevent inner-classes mouselistener anonymous-inner-class