TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
[java] tablica z JButton-ami - Problem , john565 21/11/05 14:16 mam sobie program i w nim tablice przycisków \'farba[]\', zachodze jednak w głowę jak uzyskac numer przycisku który został wciśnięty, próbowałem sobie radzić jakims polem statycznym, które przechowywało by wartość z petli \'i\' zapisywną przy tworzeniu przechwytywania zdarzenia, jednak to sie nie powiodło, umiesczenie gdziekolwiek w obiekcie obsługi zdazrenia zmiennej \'i\' na której mi zalezy najbardziej powoduje bład
local variable i is accessed from within inner class; needs to be declared final
jak zardzić powstawaniu tego błędu, fakt faktem \'i\' nie może byc final bo przecież jest w pętli ?!? nie wiem sam,
a jeżeli to co powyżej jest bez sensu i sie nie opłaca bo można łatwiej to...
czy da sie jakoś uzyskać w inny sposób niz ten przezemnie napisany numer wciskanego przycisku
tu jest kod dotyczący tworzenia obsługi zdarzenia, resta działa poprawnie , gdy wywali sie stamtąd \'i\' ...arzaj(\"dd \"+i));.. wszysko dizała ok
for (i=0; i<farba.length; i++)
{farba[i].addActionListener
(new ActionListener()
{public void actionPerformed(ActionEvent e)
{tekst.setText(tekst.getText()+przetwarzaj(\"dd \"+i));
}
}
);
}
dzęki z góry za wszelkie sugestie, pozdrawiam !f*ck - musisz koniecznie poznac to [i], nie wystarczy że... , josh 22/11/05 01:47
...dostaniesz od razu referencje do tego buttona ktory kliknales?
Patrze na API i co widzę:
java.awt.event.ActionEvent posiada metodę getSource() (tak na marginesie: dziedziczy ją po java.util.EventObject).
Tak więc wewnątrz twojej anonimowej klasy dajesz:
e.getSource()
i w ten oto sposób masz w ręce obiekt.
Jest jeszcze inna mozliwość. Jeśli zwykłą tablicę "farba[]" zamienisz na coś z kolekcji, np. java.util.ArrayList
to mozesz twoje "i" też wyciągniesz w np. taki sposób:
int szukanyIndex = farb.indexOf(e.getSource)
W ten oto pięktny sposób masz to, czego chciałeś, ale za to trzeba było zamienić tablicę na element Javowego API dot. kolekcji.- oczywisty błąd: , josh 22/11/05 01:49
było:
int szukanyIndex = farb.indexOf(e.getSource)
powinno być oczywiście:
int szukanyIndex = farb.indexOf(e.getSource())
detal, ale nie zaszkodziło sprostować.
- dzięki , john565 23/11/05 00:37
poradziłem sobie tak
((JButton)wcisnientoKolor.getSource())
po inicjalizacji zpaisuje każdemu z obiektów w tablicy numer w polu setName() i uzyskuje przez to co u góry +.get(name
dzięki za naprowadzenie :]
pozdrawiamf*ck |
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|