SceneBuilder 2:控制器 类 是否必须与视图 FXML 文件位于同一文件夹中?

SceneBuilder 2: Do controller classes need to necessarily be in the same folder as the view FXML files?

我喜欢 JavaFX 和 SceneBuilder,但我就是不知道如何使用它们的 Java 控制器使 SceneBuilder link 我的 FXML 视图在同一个文件夹中。我只想拥有这个文件夹结构:

  package
     |-- model
     |-- view
     |   |--someElementView.fxml
     |   \--anotherElementView.fxml
     \-- control
         |--someElementController.java
         \--anotherElementController.java  

相反,如果我有这个我想避免的文件夹结构,我只能让 SceneBuilder 识别我的控制器:

package
 |-- model
 \-- view
     |--someElementView.fxml
     |--anotherElementView.fxml
     |--someElementController.java
     \--anotherElementController.java 

发生的情况是,当 FXML 和 java 文件都在同一文件夹中时,SceneBuilder 会检测到它们并显示带有 java 控制器(即 "package.view.someElementController" 和"package.view.anotherElementController") 供我选择,一切都很好。

如果我有一个文件夹结构的项目,控制器位于单独的文件夹中,SceneBuilder 不会为我提供任何分配控制器的选项 class。如果我只是在控制器文本字段中键入它(即 "package.control.someElementController" 或 "package.control.someElementController"),它仍然不会获取在 java 控制器中定义的 @FXML 变量。

这是 Scene Builder 中的错误还是我处理问题的方式不对?我总是把控制器和视图放在不同的文件夹中,因为这是一个大项目,我想保持整洁。

这是 Scene Builder 的一个限制。投票给 DTL-5573 and DTL-5124.