有没有办法模块化JavaFX应用程序?

我开始玩JavaFX 2了,我真的很喜欢用FXML创建UI的简易性。 但是,一旦您通过基本示例并且您需要具有许多窗口的UI,将整个应用程序的UI的定义放在单个FXML文件中似乎是不合逻辑的。

是否可以在单独的FXML文件中编写单独的组件,然后根据需要包含它们? 比如说,当用户点击主菜单中的某个项目时,我想要一个窗口弹出; 我可以在单独的FXML文件中编写该窗口的定义,在运行时加载它并将其添加到节点树吗?

从FXML的角度来看,有两种方法:

  1. 只需使用fx:include指令将应用程序拆分为不同fxml文件中的逻辑部分。

  2. 更高级的方法是将应用程序的各个部分实现为单独的“控件”。 它将拥有自己的(可以非常简单的)API来提供数据,并且可以在FXML或FX API中使用,如内置控件。 有关如何使用FXML实现该function的详细信息,请参阅下一个问题: 如何将FXML Controller1中创建的对象传递给内部FXML控件的Controller2