在javafx中加载多个fxml

我一直在寻找一段时间,但我无法得到我想做的事情。 我一直在使用javafx框架在javafx中切换fxml这个post’ 在同一个场景中加载新的fxml ‘并取得了一些成功。 我的意思是,我有一个主窗口,这个窗口有两个不同的区域,MAIN区域和CONTENT区域。

MAIN区域在整个应用程序中保持不变,但CONTENT区域将不断变化。 我的MAIN区域只有一个工具栏,根据您单击的工具栏中的哪个按钮,CONTENT区域中的fxml(和行为)将发生变化。

我已经有了这种行为,它就像使用该框架的魅力一样。

问题是,我希望我的所有内容区域也可以拥有自己的主要区域,以及自己的内容区域。 并且取决于您在第二个MAIN区域中执行的操作,fxml和第二个CONTENT区域中的行为也会发生变化。

我不知道我使用的框架是否足够,如果我能够得到我想用它做的事情。

你知道另一个不同的框架可以帮助我获得这个function吗?

非常感谢提前!

您加载的每个.fxml都可以拥有自己的控制器。 每个控制器都可以像主要控制器一样使用自定义操作和加载代码。

基本上,JavaFX是模块化的。 如果您的主窗格中有可能存在某些内容,那么它的所有子项也是可能的。

通常,在基于UI的框架中,保持控制器的层次结构是明智的想法,这些控制器反映了它们各自组件的层次结构。 如果你想获得子元素的子控制器(例如,为了将引用传递给父控制器),那么你不能依赖FXML.load()快捷方式,你必须使用更长的语法的:

 FXMLLoader loader = new FXMLLoader(getClass().getResource("your.fxml")); YourPaneType pane = loader.load(); YourControllerType controller = loader.getController();