Komunikacja między kontrolerami JavaFX

Komunikacja między kontrolerami JavaFX
  • Rejestracja: dni
  • Ostatnio: dni
0

Cześć!

Mam kilka kontrolerów JavaFX. Jeden z nich odpowiada za tworzenie nowej gry. Drugi powinien reagować na eventy wysyłane przez grę. Żeby połączyć JavaFX z logiką stworzyłem singleton, który trzyma główną klasę gry. Problem pojawia się gdy tworząc nową grę próbuję zarejestrować drugi kontroler jako listener.

Robię coś w tym stylu:

Kopiuj
FXMLLoader gameLoader = new FXMLLoader(getClass().getResource("/view/game.fxml"));
gameLoader.load();
c.addListener(((GameListener)gameLoader.getController()));

Kontroler reaguje na eventy, ale nie rysuje nic. Mam wrażenie, że przy użyciu gameLoader.load ładowana jest nowa instancja klasy, a nie ta wykorzystywana w interjesie. Jak mogę to rozwiązać?

Pozdrawiam!

  • Rejestracja: dni
  • Ostatnio: dni
0

Dodam jeszcze, że jest to dosyć mała aplikacja, dlatego nie chciałbym wstrzykiwać zależności.
Miałem pomysł, żeby przy inicjalizacji kontrolera zapisać go w singletonie i potem nie używać bezpośredniej referencji zmiast FXMLLoadera, jednak wydaje mi się to mało eleganckie.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.