JavaFX borderpane.setCenter 替换了整个场景

Posted

技术标签:

【中文标题】JavaFX borderpane.setCenter 替换了整个场景【英文标题】:JavaFX borderpane.setCenter replaces entire scene 【发布时间】:2014-12-13 10:33:12 【问题描述】:

我正在尝试将 FXML 加载到 FXML 中。主 FXML 有一个边框,第二个包含一个 VBox。我用 FXMLLoader 加载这两个。当我尝试设置 boarderpane 的中心时,整个屏幕将被第二个 FXML 替换。这是代码

BorderPane riskAnalysis = new BorderPane((BorderPane) FXMLLoader.load(getClass().getResource("./proposaldevelopment/riskAnalysis.fxml")));
VBox center = new VBox((VBox) FXMLLoader.load(getClass().getResource("./proposaldevelopment/openRiskAssessmentVbox.fxml")));
riskAnalysis.setCenter(center);
root = riskAnalysis;

stage.getScene().setRoot(root);

有什么想法会导致这种情况吗?我还尝试制作一个新标签并将其放入边框中心,结果相同。

【问题讨论】:

【参考方案1】:

试试

BorderPane riskAnalysis = (BorderPane) FXMLLoader.load(getClass().getResource("./proposaldevelopment/riskAnalysis.fxml"));
VBox center = (VBox) FXMLLoader.load(getClass().getResource("./proposaldevelopment/openRiskAssessmentVbox.fxml"));
riskAnalysis.setCenter(center);
stage.getScene().setRoot(riskAnalysis);

【讨论】:

这行得通。它一定与我将它作为新的 BorderPane/Vbox 加载有关 - 感谢您的帮助!

以上是关于JavaFX borderpane.setCenter 替换了整个场景的主要内容,如果未能解决你的问题,请参考以下文章

JavaFX概览

什么是JavaFX

JavaFX文档啥是JavaFX

javafx是啥

求教javafx 做的系统托盘

javafx如何在同一个面板界面切换