好的,所以我无法在其他地方找到我需要的东西,所以在这里。将一个变量传递给一个ActionListener
我该如何去将一个变量传递给一个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());
}
});
}
}
该错误是上线6,在那里它强调“currentRect”,然后抱怨此,
无法指非最终变量currentRect在一个限定的内类的内部不同方法
什么是不是通过一组Jbutton将(javax.swing中)的迭代,然后分配适当的动作侦听器基于它们在该ArrayList位置,但是,我似乎无法将存储其位置的变量传递给actionlistener本身,所以我卡住了。我意识到,即时通讯写这个,我应该真的使用一个foreach,所以后来改变了。 (只是对谁指出的一点点说明)我意识到我不能最终做出这个变量,因为它在for循环期间被改变了。我也尝试将currentRect((y * 5)+ x)的值传递给函数,但无济于事。
感谢,
andrewgies17
你能从'event'对象中得到你需要的东西吗? – gMale
由于错误消息提示,您可以将'currentRect'声明为'final'来满足编译器。这是否是一个好设计完全是另一回事。 –