Twoje PC  
Zarejestruj się na Twoje PC
TwojePC.pl | PC | Komputery, nowe technologie, recenzje, testy
B O A R D
   » Board
 » Zadaj pytanie
 » Archiwum
 » Szukaj
 » Stylizacja

 
M E N U
  0
 » Nowości
0
 » Archiwum
0
 » Recenzje / Testy
0
 » Board
0
 » Rejestracja
0
0
 
Szukaj @ TwojePC
 

w Newsach i na Boardzie
 
OBECNI NA TPC
 
 » Holyboy 11:12
 » Dexter 11:10
 » ligand17 11:01
 » Doczu 10:50
 » dugi 10:48
 » cVas 10:47
 » JE Jacaw 10:40
 » Hamsterek 10:35
 » DJopek 10:34
 » Qjanusz 10:22
 » Sherif 10:20
 » Artaa 10:18
 » Dzban 10:13
 » PeKa 09:59
 » Chrisu 09:59
 » Kenny 09:54
 » DYD 09:49
 » Arlathan 09:45
 » XepeR 09:34
 » Visar 09:33

 Dzisiaj przeczytano
 30456 postów,
 wczoraj 72839

 Szybkie ładowanie
 jest:
włączone.

 
ccc
TwojePC.pl © 2001 - 2026
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

  1. 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.

    1. 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ć.

  2. 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 :]

    pozdrawiam

    f*ck

    
All rights reserved ® Copyright and Design 2001-2026, TwojePC.PL