好的,所以我無法在其他地方找到我需要的東西,所以在這裏。將一個變量傳遞給一個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'來滿足編譯器。這是否是一個好設計完全是另一回事。 –