【发布时间】:2015-05-04 00:08:01
【问题描述】:
我喜欢 JavaFX 和 SceneBuilder,但我只是不知道如何让 SceneBuilder 将我的 FXML 视图与它们的 Java 控制器链接起来,因为它们不在同一个文件夹中。我只想拥有这个文件夹结构:
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 不会为我提供任何分配控制器类的选项。如果我只是在控制器文本字段中输入它(即“package.control.someElementController”或“package.control.someElementController”),它仍然不会拾取java控制器中定义的@FXML变量。
这是 Scene Builder 中的一个错误,还是我以错误的方式处理事情?我一直将控制器和视图放在不同的文件夹中,由于这是一个大项目,我想保持整洁。
【问题讨论】:
-
控制器的正确值是完全限定的类名,例如
package.control.someElementController,尽管 SceneBuilder 似乎无法正确识别这一点。 -
是的,我在文本字段中介绍的始终是完全限定的类名,我会在我的问题文本中更新它。
标签: model-view-controller javafx controller fxml scenebuilder