Ok. Nie wiedziałem jak dokładnie przekazać handler do zarejestrowanego eventu, ale zdeklarowałem EventHandlery globalnie i działa. Dzięki za pomoc i poświęcony czas :)
private EventHandler handler_0;
private EventHandler handler_1;
private EventHandler handler_2;
private EventHandler handler_3;
public void handleMouseClickedCar(Rectangle car, MouseEvent p) {
EventHandler<MouseEvent> handler0 = e -> handleMouseClickedDestination(road0,cc, e);
EventHandler<MouseEvent> handler1 = e -> handleMouseClickedDestination(road1,cc, e);
EventHandler<MouseEvent> handler2 = e -> handleMouseClickedDestination(road2,cc, e);
EventHandler<MouseEvent> handler3 = e -> handleMouseClickedDestination(road3,cc, e);
handler_0 = handler0;
handler_1 = handler1;
handler_2 = handler2;
handler_3 = handler3;
road0.addEventHandler(MouseEvent.MOUSE_CLICKED, handler0);
road1.addEventHandler(MouseEvent.MOUSE_CLICKED, handler1);
road2.addEventHandler(MouseEvent.MOUSE_CLICKED, handler2);
road3.addEventHandler(MouseEvent.MOUSE_CLICKED, handler3);
}
public void handleMouseClickedDestination(Rectangle Destination,CarController cc, MouseEvent p) {
road0.removeEventHandler(MouseEvent.MOUSE_CLICKED,handler_0);
road1.removeEventHandler(MouseEvent.MOUSE_CLICKED,handler_1);
road2.removeEventHandler(MouseEvent.MOUSE_CLICKED,handler_2);
road3.removeEventHandler(MouseEvent.MOUSE_CLICKED,handler_3);
}
edit: W sumie, zaraz te globalne zrobię jako tablice :)