在java中访问内部类中的变量
2022-09-03 00:21:28
我正在尝试创建一个JLabels数组,所有这些在单击时都应该不可见。当尝试通过需要访问用于声明标签的循环的迭代变量的内部类设置鼠标侦听器时,问题就来了。代码是不言自明的:
for(int i=1; i<label.length; i++) {
label[i] = new JLabel("label " + i);
label[i].addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent me) {
label[i].setVisible(false); // compilation error here
}
});
cpane.add(label[i]);
}
我以为我可以通过使用或代替内部方法的调用来克服这一点,但我无法弄清楚。this
super
label[i]
编译错误是:局部变量 i 是从内部类中访问的;需要被宣布为最终”
我敢肯定,答案一定是我没有想到的非常愚蠢的事情,或者也许我犯了一些小错误。
任何帮助将不胜感激