SceneBuilder 2:控制器类是否必须与视图 FXML 文件位于同一文件夹中? [英] SceneBuilder 2: Do controller classes need to necessarily be in the same folder as the view FXML files?

查看:44
本文介绍了SceneBuilder 2:控制器类是否必须与视图 FXML 文件位于同一文件夹中?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

I'm loving JavaFX and SceneBuilder, but I just can't figure out how to make SceneBuilder link my FXML views with their Java controllers when they are not in the same folder. I'd just like to have this folder structure:

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

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

Instead I can only make SceneBuilder recognise my controllers if I have this folder structure which I'd like to avoid:

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

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

What happens is that when the FXML and java files are all in the same folder, SceneBuilder detects them and shows a dropdown list with the java controllers (i.e. "package.view.someElementController" and "package.view.anotherElementController") for me to choose from and everything works nicely.

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

If I have a project with the folder structure with the controllers in a separate folder, SceneBuilder won't offer me any option to assign a controller class. If I just type it in the controller text field (i.e. "package.control.someElementController" or "package.control.someElementController"), it still won't pick up the @FXML variables defined in the java controller.

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

Is this a bug in Scene Builder or am I approaching things the wrong way? I have always have the controllers and the views in different folders, and since it's a big project, I'd like to keep things tidy.

推荐答案

这是 Scene Builder 的一个限制.为 DTL-5573DTL-5124.

This is a limitation of Scene Builder. Vote for DTL-5573 and DTL-5124.

这篇关于SceneBuilder 2:控制器类是否必须与视图 FXML 文件位于同一文件夹中?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆