MouseListener w obiekcje

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.

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?

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