JavaFX cómo inyectar nuevo contenido FXML a la escena actual
Tengo una aplicación, que tiene el archivo HomeScene.fxml con encabezados y menú. HomeScene también tiene dashboardPane, que debe cambiarse dinámicamente después de presionar el botón de menú. El contenido del panel del tablero debe cargarse desde otro archivo fxml, digamos 'FinancesPane.fxml' o 'SettingsPane.fxml'.
Estoy tratando de reemplazar el contenido de dashboardPane en HomeController:
@FXML
public void handleFinancesButtonAction() {
FinancesPaneFactory paneFactory = new FinancesPaneFactory();
dashBoardPane.getChildren().clear();
dashBoardPane.getChildren().add(paneFactory.createPane());
}
Mi FinancesPaneFactory se ve así:
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 más claro, así es como se ve HomeScene:HomeScene . Este espacio vacío es un panel de tablero y debe reemplazarse con otro contenido cuando el usuario presiona el botón de menú izquierdo.
¿Cómo inyectar este contenido dinámicamente?