我喜欢 JavaFX 和 SceneBuilder,但是当它们不在同一个文件夹中时,我就是不知道如何让 SceneBuilder 将我的 FXML View 与其 Java Controller 链接起来。我只想有这个文件夹结构:
package
|-- model
|-- view
| |--someElementView.fxml
| \--anotherElementView.fxml
\-- control
|--someElementController.java
\--anotherElementController.java
相反,如果我有这个我想避免的文件夹结构,我只能让 SceneBuilder 识别我的 Controller :
package
|-- model
\-- view
|--someElementView.fxml
|--anotherElementView.fxml
|--someElementController.java
\--anotherElementController.java
当 FXML 和 java 文件都位于同一文件夹中时,SceneBuilder 会检测到它们并显示带有 java Controller 的下拉列表(即“package.view.someElementController”和“package.view.anotherElementController”)供我选择,一切都很顺利。
如果我有一个具有文件夹结构且 Controller 位于单独文件夹中的项目,则 SceneBuilder 将不会为我提供任何分配 Controller 类的选项。如果我只是在 Controller 文本字段中输入它(即“package.control.someElementController”或“package.control.someElementController”),它仍然不会获取java Controller 中定义的@FXML变量。
这是场景生成器中的错误还是我处理问题的方式错误?我总是将 Controller 和 View 放在不同的文件夹中,由于这是一个大项目,我希望保持整洁。
最佳答案
关于model-view-controller - 场景生成器 2 : Do controller classes need to necessarily be in the same folder as the view FXML files?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28830132/