当我安排javafx布局时,我遇到了一些麻烦。我使用BorderPane。顶部和左侧区域用于静态视图(页面)。我将MenuBar放在Top上,将一些Buttons放在左边,就像在图片中一样。而且,当我点击一个按钮时,内容将在中心打开。每个Button都有不同的内容和布局。 " Money Box"按钮将有TabPane作为其内容,我已使用SceneBuilder创建它。 "咖啡"按钮将有Table的内容,我使用SceneBuilder创建它。我在这里解决问题的策略是什么,或者我该做些什么呢?
答案 0 :(得分:0)
我并不是100%确定您究竟在寻找什么,并且根据您的描述,有很多方法可以满足您的需求。我有类似的行为,我们为每个选定的布局使用不同的FXML并加载它们并从场景中删除它们。
private void openMiddleNode(String view) {}
try {
FXMLLoader loader = new FXMLLoader();
Parent node = loader.load(getClass().getClassLoader().getResource(view).openStream());
//If your middle section has it's own controller (likely an instance variable, if it needs to respond to events from the parent controller)
MyController controller = loader.getController();
controller.anyCustomSetup();
//Assumes that this middlePane is defined in the FXML and initialized above
middlePane.getChildren().setAll(node);
} catch (IOException ie){
if(logger.isErrorEnabled()){
logger.error("An exception has been thrown: " + ie);
}
}
}