헤더와 메뉴가있는 HomeScene.fxml 파일이있는 앱이 있습니다. HomeScene에는 dashboardPane도 있으며 메뉴 버튼을 누른 후 동적으로 변경해야합니다. 대시 보드 창 콘텐츠는 다른 fxml 파일에서로드해야합니다 (예 : 'FinancesPane.fxml'또는 'SettingsPane.fxml'). HomeController에 dashboardPane의 내용을 대체하려고JavaFX 현재 FXML 컨텐츠를 삽입하는 방법
임 :
@FXML
public void handleFinancesButtonAction() {
FinancesPaneFactory paneFactory = new FinancesPaneFactory();
dashBoardPane.getChildren().clear();
dashBoardPane.getChildren().add(paneFactory.createPane());
}
내 FinancesPaneFactory은 다음과 같습니다가 : HomeScene :
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의 모습을 어떻게 더 명확합니다. 이 빈 공간은 dashboardPane이므로 사용자가 왼쪽 메뉴 버튼을 누르면 다른 내용으로 바꿔야합니다.
이 콘텐츠를 동적으로 주입하는 방법은 무엇입니까?
@FXML
private ScrollPane dynamicNode;
스크롤 창은 좋은 선택이다 :
dashBoardPane은 BorderPane입니까? 그렇다면 dashBoardPane.setCenter (pane)와 같은 메소드를 사용해야합니다. – BadVegan
dashBoardPane은 AnchorPane입니다. –