FXML 中的可重用控制器。多个 fxml 文件的一个控制器(略有更改)

Reusable controllers in FXML. One controller (slightly changed) for multiple fxml files

我想知道是否可以 "reuse" 创建另一个 fxml 的控制器。换句话说,我可以为 fxml 创建一个控制器,稍微修改一下,然后将它(的另一个实例)用于另一个 fxml 而不会影响第一个。否则,我在某种程度上被迫从控制器复制代码,应用更改,然后使用新代码。

我没有看到很多这样的用例,因为您显然会在不同的 FXML 文件中有不同的控件,因此不清楚您将如何管理注入。如果您确实有一个用例(例如,不同的 FXML 文件只是针对相同的基本 UI 具有不同的布局),则可能:

从 FXML 文件中删除 fx:controller 属性,并使用以下模式手动设置控制器:

FXMLLoader loader = new FXMLLoader(getClass().getResource("/path/to/file.fxml"));
MyConfigurableController controller = new MyConfigurableController(aParam, anotherParam);
loader.setController(controller);
Parent root = loader.load();