Witam.
Proszę o pomoc w następującej sprawie. W części głównej programu mam metodę, która czyta plik i tworzy listę przycisków dziedziczących po JButton z dodanymi przeze mnie dodatkowymi zmiennymi. Wiersz przeczytany z pliku jest etykietą przycisku. Dla każdego przycisku jest metoda obsługi zdarzenia, która powoduje utworzenie i wyświetlenie okna. Moje pytanie: jak z poziomu okna dostać się do zmiennych przycisku, który je wywołał ??
Poniżej kod metody:
private void MakeButtonsFriends(String sfriends){
int x,y;
int i = 0;
String fname;
FriendsList = new ArrayList<CoNiOPrvButton>();
StringTokenizer st = new StringTokenizer(sfriends, "|");
int width = jPanelButton1.getWidth();
x = jPanelButton1.getX();
y = jPanelButton1.getY();
while(st.hasMoreTokens()){
fname = st.nextToken();
FriendsList.add(new CoNiOPrvButton(fname));
FriendsList.get(i).setBounds(x, y + i * 30, width, 30);
FriendsList.get(i).Name = fname;
FriendsList.get(i).addActionListener(new java.awt.event.ActionListener() {
@Override
public void actionPerformed(java.awt.event.ActionEvent evt) {
int j = -1;
for(int k = 0; k < FriendsList.size(); k++){
if(FriendsList.get(k).Name.equals(evt.getActionCommand())){
j = k;
}
}
if(!FriendsList.get(j).Private.isDispleyed){
FriendsList.get(j).Private = new CoNiOPrivate("Rozmowa prywatna z: [" + evt.getActionCommand() + "]");
FriendsList.get(j).Private.setVisible(true);
FriendsList.get(j).isDisplayed = true;
FriendsList.get(j).Private.isDispleyed = true;
} else {
CoNiOInfo info = new CoNiOInfo(FriendsList.get(j).Private, true, "Okno rozmowy z " + evt.getActionCommand()
+ " jest już otwarte.");
info.setVisible(true);
}
}
});
jPanelButton1.add(FriendsList.get(i));
i++;
}
}
Będę wdzięczny za każdą pomoc.
Pozdrawiam Andrzej