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
 
 » john565 18:57
 » sszpila 18:56
 » Lucullus 18:54
 » Artaa 18:53
 » PeKa 18:48
 » Ramen 18:48
 » tuptun 18:46
 » P@blo 18:42
 » Paweł27 18:41
 » DYD 18:40
 » jenot 18:39
 » KHot 18:39
 » petropank 18:38
 » Chrisu 18:37
 » GLI 18:30
 » Robek 18:28
 » b0b3r 18:23
 » ligand17 18:22
 » resmedia 18:13
 » Dexter 18:12

 Dzisiaj przeczytano
 41106 postów,
 wczoraj 25974

 Szybkie ładowanie
 jest:
włączone.

 
ccc
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

  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-2024, TwojePC.PL