좋아, 다른 곳에서는 필요했던 것을 정확히 찾을 수 없으므로 여기로갑니다.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());
}
});
}
}
오류, 그것은 "currentRect"을 강조하고 이것에 대해 불평 라인 여섯에
가에 정의 된 내부 클래스 내부가 아닌 최종 변수 currentRect을 참조 할 수 없습니다 다른 방법 JButton의 (javax.swing의)의 그룹을 반복 한 다음, 그러나, ArrayList를에서의 위치에 따라 적절한 액션 청취자를 할당한다 않습니다 무엇
I 자신의 위치를 actionListener 자체에 저장하는 변수를 전달할 수 없어 보일 수 있습니다. 나는이 글을 쓰는 동안 실제로 foreach를 사용해야한다는 것을 깨달았습니다. (누가 그 점을 지적했는지에 대한 약간의 노트) for 루프 중에 변경되기 때문에 최종 변수를 final로 만들 수 없다는 것을 알고 있습니다. 나는 또한 currentRect (y * 5) + x)의 값을 함수에 전달하려고 시도했지만 아무 소용이 없었다.
감사합니다,
andrewgies17
'event' 객체에서 필요한 것을 얻을 수 있습니까? – gMale
오류 메시지 힌트로 컴파일러를 만족시키기 위해'currentRect'를'final'로 선언 할 수 있습니다. 이것이 좋은 디자인인지 여부는 완전히 다른 문제입니다. –