JavaFX como injetar novo conteúdo FXML na cena atual
Eu tenho um aplicativo, que possui o arquivo HomeScene.fxml com cabeçalhos e menu. O HomeScene também possui o dashboardPane, que deve ser alterado dinamicamente depois que o botão do menu for pressionado. O conteúdo do painel do painel deve ser carregado de outro arquivo fxml, digamos 'FinancesPane.fxml' ou 'SettingsPane.fxml'.
Estou tentando substituir o conteúdo do dashboardPane no HomeController:
@FXML
public void handleFinancesButtonAction() {
FinancesPaneFactory paneFactory = new FinancesPaneFactory();
dashBoardPane.getChildren().clear();
dashBoardPane.getChildren().add(paneFactory.createPane());
}
My FinancesPaneFactory aparece assim:
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);
}
}
}
Para ser mais claro, é assim que o HomeScene se parece:Página inicial . Esse espaço vazio é um dashboardPane e deve ser substituído por outro conteúdo quando o usuário pressionar o botão de menu esquerdo.
Como injetar esse conteúdo dinamicamente?