【问题标题】:SceneBuilder 2: Do controller classes need to necessarily be in the same folder as the view FXML files?SceneBuilder 2:控制器类是否必须与视图 FXML 文件位于同一文件夹中?
【发布时间】: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


【解决方案1】:

这是 Scene Builder 的限制。投票给DTL-5573DTL-5124

【讨论】:

  • 感谢您的信息。我刚刚对这两个问题投了票。我将继续使用视图文件夹中的控制器并密切关注新版本。
  • Oracle 不再发布 Scene Builder 的二进制文件。见this mailing list post
猜你喜欢
  • 1970-01-01
  • 2020-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多