好的,所以我在其他任何地方都找不到我需要的东西,所以就这样吧。
我将如何将变量传递给 ActionListener() 内的函数?这是我的代码。
for(int y = 0; y < 5; y ++) {
for(int x = 0; x < 5; x ++) {
currentRect = (y * 5) + x;
mainButtons.get(currentRect).addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
answerField.setText(questions.get(currentRect).getAnswer());
}
});
}
}
错误在第六行,它在“currentRect”下划线,然后抱怨这个,
不能在不同方法中定义的内部类中引用非最终变量 currentRect
所做的是遍历一组 JButtons (javax.swing) ,然后根据它们在 ArrayList 中的位置分配适当的动作侦听器,但是,我似乎无法将存储其位置的变量传递给动作侦听器本身,所以我被困住了。我在写这篇文章时意识到我真的应该使用一个 foreach,所以以后会改变它。(请注意谁会指出这一点)我意识到我不能也使该变量成为最终变量,因为它在 for 循环期间发生了变化。我还尝试将 currentRect ((y * 5) + x) 的值传递给函数,但无济于事。
谢谢,
安德鲁吉斯17