java - 从java中的内部类访问变量

标签 java mouseevent inner-classes mouselistener anonymous-inner-class

我想访问i来自mouseClicked方法。有人可以帮我解决这个问题吗?

这是我的代码片段 -

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 中显示) 但没有运行时或编译时异常。

最佳答案

你应该能够做到:

for (int i = 0; i < 9; i++) {
    final int tmpI = i;
    JLabel jl = new JLabel(String.valueOf(i));
    jl.addMouseListener(new MouseAdapter() {
        public void mouseClicked(MouseEvent evt) {

                    addAnEventToLabel(tmpI);
        }
    });
}

关于java - 从java中的内部类访问变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46950056/

相关文章:

javascript - 无法在 selenium webdriver 中通过 xpath 单击按钮

java - 如何防止 servlet 缓冲响应内容

java - 通过执行一个简单的 Spring Hibernate 集成程序,我遇到了以下问题

javascript - .on ('mouseenter' ...未检测到附加元素 (jQuery)

c++ - 如何设计一个始终是另一个类的成员的类

java - 内部类作为 hibernate 组件

java - 如何在 java 中使用 opencsv 将行追加到现有 csv 文件

android - pygame - 将对象链接到鼠标事件

c++ - 在 qgraphicsview 中忽略 svg 图像透明部分上的鼠标事件?

c++ - 如何在 C 中声明指向嵌套 C++ 类的指针