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.