Hallo zusammen,
wenn ich ein custom control erstelle mit fx:root, initialisiere im Constructor des Controls über FMXLloader
#setRoot()
#setController()
Wenn ich dann zum Beispiel Depency Injection innerhalb des Constrcutors benutzen will, gibt der mir null zurück.
Wie geht man da am besten vor?
Ich habe hier eine Anleitung gefunden, aber das ist nur für normale FXML mit Controller und keine custom Controls mit fx:root
Hat da jemand eine Idee für mich oder bessere Vorgehensweise?
Viele Grüße
lam
wenn ich ein custom control erstelle mit fx:root, initialisiere im Constructor des Controls über FMXLloader
#setRoot()
#setController()
Wenn ich dann zum Beispiel Depency Injection innerhalb des Constrcutors benutzen will, gibt der mir null zurück.
Wie geht man da am besten vor?
Ich habe hier eine Anleitung gefunden, aber das ist nur für normale FXML mit Controller und keine custom Controls mit fx:root
Code:
Injector injector = Guice.createInjector(new GuiceModule());
FXMLLoader fxmlLoader = new FXMLLoader();
//The new part. Give fxmlLoader a callback. Controllers will now be instatiated via the container, not FXMLLoader itself.
fxmlLoader.setControllerFactory(instantiatedClass -> {
return injector.getInstance(instantiatedClass);
});
Hat da jemand eine Idee für mich oder bessere Vorgehensweise?
Viele Grüße
lam