Я пишу программу, и я столкнулся с проблемой, ...JButton Массив ActionListener Выпуск
создать 1 JLabel массив и 1 JButton массив. В массиве JLabel содержится строка, название клуба. Массив JButton содержит строку, которая просто говорит «Изменить».
В цикле For заполняется каждый массив на основе длины массива клубов, а также добавляется прослушиватель действий для каждой кнопки.
Когда пользователь нажимает JButton, соответствующий JLabel, он инициирует событие. В этом случае мне нужно узнать значение, хранящееся в JLabel, которое соответствует JButton.
Поскольку прослушиватель событий не знает, что он внутри цикла, я не могу его использовать.
Как достичь цели, которую я хочу?
См. Следующий код.
JLabel clubs[] = new JLabel[99];
JButton editAClub[] = new JButton[99];
for(int i=0; i <= (allClubs.length - 1);i++)
{
clubs[i] = new JLabel("Club " + i);
editAClub[i] = new JButton("Edit");
editAClub[i].addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
selectedClub = clubs[i].getText().toString();
System.out.println(selectedClub);
}
});
}
Что случилось с текущим кодом? –
Вы не можете использовать i внутри actionListener. –