当前位置: 首页 > 知识库问答 >
问题:

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

罗学真
2023-03-14

我很喜欢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)的下拉列表供我选择一切都很顺利。

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

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

共有1个答案

蓟俊杰
2023-03-14

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

 类似资料:
  • 我正在从事一个JavaFX8(maven)项目。我想在sources(而不是resources)文件夹中存储一个fxml文件 当我将fxml存储到location/src/main/resources/views/b/MyFxml时。fxml我使用命令加载它时没有错误, 有没有办法从/src/main/java/package/name/RoleView加载我的fxml文件。fxml位置?

  • 我正在处理一个JavaFX8(maven)项目。我想在sources(而不是resources)文件夹中存储fxml文件。 当我将fxml存储到位置/src/main/resources/views/b/myfxml.fxml时, 有没有办法从/src/main/java/package/name/roleview.fxml位置加载我的fxml文件?

  • 我在使用Java和FXML文件时遇到了一个问题。 现在我找了好几个小时,找不到任何解决我问题的东西,所以我最后的希望是针对我的具体情况提出问题(我知道像这个问题和其他问题,但没有一个真正帮助我在这方面。 简单说明:我有一个Eclipse Java项目,我的类(对于这个问题很重要)在包[Project Name]/src/measurements.gui中。我的FXML文件在[Project Nam

  • 问题内容: 我有一个由一个控制器控制的fxml文件。我想将控制器分成多个部分,就像放置在一个控制器中会产生很长的代码一样。不幸的是,fx:controller只能放在根目录中。我对如何分离控制器有什么建议吗? 问题答案: 我建议创建自定义控件-使用几个较小的FXML文件,而不是一个大FXML文件。 这是本教程: http://docs.oracle.com/javafx/2/fxml_get_st

  • 问题内容: 因此,我使用此链接来设置进度条,并且在运行此代码时效果很好。 但是,使用我拥有的设置,我似乎无法获得progressbar进行实际更新… progressBar.getProgress()实际上获得了正确的进度,但是UI并未更新。这是到目前为止的代码: Main.java ProgressBarController.java ProgressBarLayout.fxml 问题答案: 在

  • 我用JavaSE7安装了netbeans,javafx示例运行良好。在scenebuilder中,我可以为控制器中使用定义和注释的每个控件选择一个ID。然而,我喜欢我组织的项目。当我创建一个新包,并将我的FXML文件移动到那里时,(myapp/views),控制器将保持在它所在的根目录中- 我知道FXML中的“控制器类”,但是因为我没有移动我的控制器,所以不应该改变它。 更具体地说,当我的控制器和