ActionListener dla wielu przycisków

0

Witam,

tworzę przyciski w pętli

for (Iterator i = filteredUserList.iterator(); i.hasNext();) {
	TeamMember user = (TeamMember) i.next();
	panel.add(new JLabel(user.toString()));
	JButton showScheduleBtn = new JButton("pokaż harmonogram");
	panel.add(showScheduleBtn);
}

i chciałbym, żeby z każdym przyciskiem powiązany był obiekt użytkownika. Kiedy nacisnę przycisk, wywołuję jakąś metodę, której argumentem jest powiązany z danym przyciskiem użytkownik. Jak to zrobić? Na razie nie mam pomysłów. Jeśli by wykorzystać do tego klasę wewnętrzną, to musiałbym zadeklarować JButton showScheduleBtn jako final, wyrzucić to przed pętlę i zaraz za zadeklarować klasę wewnętrzną. Ale wtedy niemógłbym zainicjować showScheduleBtn w pętli. Poza tym jak stworzyć to powiązanie między pczyciskiem i użytkownikiem?

0

Moim zdaniem masz 2 możliwości:

  • w pętli tworzyć ActionListenery dla każdego z przycisków - połączysz wtedy przycisk z userem pośrednio przez ActionListenera
  • napisać nową klasę JPrzyciskDlaUzytkownika gdzie zadeklarujesz pole usr klasy TeamMember + odpowiednie konstruktory - to będzie bezpośrednie połączenie i będziesz miał jeden ActionListener

A z tym final to przesadziłeś.

0
  • napisać nową klasę JPrzyciskDlaUzytkownika gdzie zadeklarujesz pole usr klasy TeamMember + odpowiednie konstruktory - to będzie bezpośrednie połączenie i będziesz miał jeden ActionListener

tak też zrobiłem :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1