JavaFX, как внедрить новый контент FXML в текущую сцену
У меня есть приложение, в котором есть файл HomeScene.fxml с заголовками и меню. HomeScene также имеет панель инструментов, которая должна динамически изменяться после нажатия кнопки меню. Содержимое панели мониторинга должно быть загружено из другого файла fxml, скажем, «FinancesPane.fxml» или «SettingsPane.fxml».
Я пытаюсь заменить содержимое панели инструментов в HomeController:
@FXML
public void handleFinancesButtonAction() {
FinancesPaneFactory paneFactory = new FinancesPaneFactory();
dashBoardPane.getChildren().clear();
dashBoardPane.getChildren().add(paneFactory.createPane());
}
Мой FinancesPaneFactory выглядит так:
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);
}
}
}
Чтобы быть более понятным, вот так выглядит HomeScene:HomeScene , Это пустое пространство представляет собой панель инструментов и должно быть заменено другим содержимым, когда пользователь нажимает левую кнопку меню.
Как внедрить этот контент динамически?