JavaFX Wie füge ich neuen FXML-Inhalt in die aktuelle Szene ein?
Ich habe eine App mit einer HomeScene.fxml-Datei mit Kopfzeilen und einem Menü. HomeScene verfügt auch über das DashboardPane, das nach dem Drücken der Menütaste dynamisch geändert werden sollte. Der Inhalt des Dashboard-Bereichs sollte aus einer anderen fxml-Datei geladen werden, beispielsweise 'FinancesPane.fxml' oder 'SettingsPane.fxml'.
Im versucht, den Inhalt von dashboardPane in HomeController zu ersetzen:
@FXML
public void handleFinancesButtonAction() {
FinancesPaneFactory paneFactory = new FinancesPaneFactory();
dashBoardPane.getChildren().clear();
dashBoardPane.getChildren().add(paneFactory.createPane());
}
Meine FinancesPaneFactory sieht so aus:
public class FinancesPaneFactory extends PaneFactory {
private static final String PANE_TEMPLATE_PATH = "/sceneTemplates/FinancesPane.fxml";
public FinancesPaneFactory() {
super(PANE_TEMPLATE_PATH );
}
@Override
protected Pane generatePane(FXMLLoader loader) {
try {
return (Pane) loader.load();
} catch (IOException e) {
throw new FatBirdRuntimeException("Unable to load FinancesPane", e);
}
}
}
Um es klarer zu machen, sieht HomeScene folgendermaßen aus: HomeScene. Dieser leere Bereich ist ein Dashboard-Bereich und sollte durch einen anderen Inhalt ersetzt werden, wenn der Benutzer die linke Menütaste drückt.
Wie kann ich diesen Inhalt dynamisch einfügen?