私はヘッダーとメニューを持つHomeScene.fxmlファイルを持つアプリを持っています。 HomeSceneにはdashboardPaneもあります。これは、メニューボタンを押した後に動的に変更する必要があります。ダッシュボードペインのコンテンツは別のfxmlファイルからロードする必要があります。たとえば、 'FinancesPane.fxml'または 'SettingsPane.fxml'とします。 HomeController中dashboardPaneの内容を置き換えるためにしようとJavaFX現在のシーンに新しいFXMLコンテンツを挿入する方法
イム:私FinancesPaneFactoryはこのようになります
@FXML
public void handleFinancesButtonAction() {
FinancesPaneFactory paneFactory = new FinancesPaneFactory();
dashBoardPane.getChildren().clear();
dashBoardPane.getChildren().add(paneFactory.createPane());
}
: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がどのように見えるかです。 この空白はダッシュボードパネルで、左メニューボタンを押したときに別の内容に置き換えてください。
このコンテンツを動的に挿入するにはどうすればよいですか?
@FXML
private ScrollPane dynamicNode;
スクロールペインには良い選択です:
dashBoardPaneはBorderPaneですか?はいの場合は、dashBoardPane.setCenter(pane)のようなメソッドを使用してください。 – BadVegan
dashBoardPaneはAnchorPaneです。 –