MouseListener w obiekcje

Odpowiedz Nowy wątek
2008-07-14 22:40

Rejestracja: 14 lat temu

Ostatnio: 4 lata temu

0

Podczas pisania programu napotkałem na bardzo poważny problem, mianowicie próbuje dynamicznie trwożonym obiektom przypisać MouseListener tworzenie wygląda mniej więcej tak :

         tab = new ArrayList();
         for (int i= 0; i < 3; i++){
            Robal r = new Robal(this, papu); 
            r.robalPoz();
            tab.add(r);
         }

Obiekt robal nie robi nic innego jak tylko wyświetla się na Canvasie poprzez metodę paint :

for(int i = 0 ; i < tab.size(); i++){
                Robal m = (Robal) actors.get(i);                
                m.robalPoz();
                                m.mouse(mouseX,mouseY);                 
                                m.paint(g); 

}

chciał bym aby mój robal mógł reagować na zdarzenia myszki implementując interfejs MouseListener
czyli zdarzenie odbywa się w klasie bazowej która odpowiada za rysowanie gui następnie zostaje przekazane do obiektów klasy Robal gdzie jest interpretowane w metodach :

       public void mouseClicked(MouseEvent e){}
       public void mouseEntered(MouseEvent e){}
       public void mouseExited(MouseEvent e){}
       public void mousePressed(MouseEvent e){}
       public void mouseReleased(MouseEvent e){}

zastanawiam się tylko czy w takiej sytuacji jest to wo gule wykonalne ??
obecnie radzę sobie przekazując robalowi pozycje w której nastąpiło kliknięcie za pomocą metody
m.mouse(mouseX,mouseY); gdzie jak nie trudno się domyśleć mouseX,mouseY to zmienne int do których zapisuje pozycję kliknięcia.
Z niecierpliwością oczekuje na wszystkie sugestię, bo im dłużej nad tym siedzę tym bardziej myślę że jest jest to po prostu nie do zrobienia, no przynajmniej tak łatwo :D.

Pozostało 580 znaków

elemele
2008-07-15 21:50
elemele
0

Robal implementuje MouseListenera, i w kazdej metodzie ktora zmienia costam (jak polozenie, kolor itp) wywolywana jest metoda paint robala, ktora pewnie wywoluje repaint na panelu czy cos w ten desen? Wzglednie, jakos ze robal logicznie nie jest listenerem, mozna zrobic klase zagniezdzona implementujaca listenera, i dzialajaca tak samo jak opisalem powyzej?
Hm?

Pozostało 580 znaków

Odpowiedz

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