Wpis z mikrobloga

Witam.

Link do calego programu: https://github.com/ZacznijProgramowac/MojaBiblioteczka

Moglbym ktos mi wytlumaczyc jedna rzecz, bo no idea jakim cudem jemu to dziala. Otoz:

https://github.com/ZacznijProgramowac/MojaBiblioteczka/blob/master/src/main/java/pl/moja/biblioteczka/controllers/MainController.java :

@FXML
private TopMenuButtonsController topMenuButtonsController;

@FXML
private void initialize() {
topMenuButtonsController.setMainController(this);
}

W jaki sposob udaje mu sie przekazac obiekt do innego kontrolera nie tworzyc obiektu TopMenuButtonsController? Stworzyl sobie tylko typ i od razu udaje mu sie wywolac setter i przekazac referencje MainControllera. Nie rozumiem jak to dziala. Jak moze przekazac referencje, nie tworzac obiektu.

Kontroler do, ktorego przekazuje ten obiekt: https://github.com/ZacznijProgramowac/MojaBiblioteczka/blob/master/src/main/java/pl/moja/biblioteczka/controllers/TopMenuButtonsController.java

#java #naukaprogramowania #programowanie
  • 6
Obiekty kontrolerów są w JavieFX tworzone zazwyczaj przez FXMLLoadera.
Jest w JavieFX trik z podziałem pliku fxml na kilka mniejszych części i później można je includować. Jeśli później potrzebujesz skomunikować ze sobą kontrolery, to robisz to tak, że w tym pliku:
https://github.com/ZacznijProgramowac/MojaBiblioteczka/blob/master/src/main/resources/fxml/BorderPaneMain.fxml
dodajesz przy fx:include wartość fx:id na topMenuButtons, a później w kontrolerze obiekt kontrolera dla tego pliku TopMenuButtons.fxml zostanie przypisany do pola o które pytasz. Bardzo ważne jest tam to, żeby