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

zap*_*lla 5 model-view-controller controller javafx fxml scenebuilder

我喜欢 JavaFX 和 SceneBuilder,但是当它们不在同一个文件夹中时,我无法弄清楚如何让 SceneBuilder 将我的 FXML 视图与它们的 Java 控制器链接起来。我只想拥有这个文件夹结构:

  package
     |-- model
     |-- view
     |   |--someElementView.fxml
     |   \--anotherElementView.fxml
     \-- control
         |--someElementController.java
         \--anotherElementController.java  
Run Code Online (Sandbox Code Playgroud)

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

package
 |-- model
 \-- view
     |--someElementView.fxml
     |--anotherElementView.fxml
     |--someElementController.java
     \--anotherElementController.java 
Run Code Online (Sandbox Code Playgroud)

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

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

这是场景生成器中的错误还是我以错误的方式处理问题?我总是将控制器和视图放在不同的文件夹中,由于这是一个大项目,我想保持整洁。

Rya*_*n J 3

这是场景生成器的限制。投票支持DTL-5573DTL-5124