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

当FXML位于与控制器不同的包中时,JavaFX Scenebuilder看不到ID

景元徽
2023-03-14

我用JavaSE7安装了netbeans,javafx示例运行良好。在scenebuilder中,我可以为控制器中使用@FXML定义和注释的每个控件选择一个ID。然而,我喜欢我组织的项目。当我创建一个新包,并将我的FXML文件移动到那里时,(myapp/views),控制器将保持在它所在的根目录中-

我知道FXML中的“控制器类”,但是因为我没有移动我的控制器,所以不应该改变它。

更具体地说,当我的控制器和fxml都在包'holidayapp'中时,它工作。将fxml移动到子包holidayapp/view',不工作。控制器类保持不变

<AnchorPane id="AnchorPane" prefHeight="200" prefWidth="320" xmlns:fx="http://javafx.com/fxml" fx:controller="holidayapp.HolidayViewController">

因为HolidayViewController保留在根包中。除了将fxml文件从主包移动到子包之外,我什么也不做。

我想看到的id从我的场景建设者的holidayViewController。在子包中使用fxml进行压缩和运行从来都不是问题。

谢谢

共有2个答案

柴霖
2023-03-14

我处理这个问题的方法是将我的主类放入视图(扩展应用程序的视图)。这使我能够访问控制器类、它们的变量和方法。这适用于SceneBuilder 1.1。

我只能在使用Eclipse而不是NetBeans的情况下发言,因此这样做可能仍然没有任何结果。

程胤运
2023-03-14

我想你可能正在遭受以下问题的困扰:

https://bugs.openjdk.java.net/browse/JDK-8091793

如果你认为你有,请考虑投票赞成和/或评论这个问题。

 类似资料:
  • 我很喜欢JavaFX和SceneBuilder,但我就是不知道如何让SceneBuilder将我的FXML视图与它们的Java控制器链接起来,因为它们不在同一个文件夹中。我只想拥有以下文件夹结构: 相反,如果我有以下文件夹结构,我只能让SceneBuilder识别我的控制器,我希望避免: 当FXML和java文件都在同一个文件夹中时,SceneBuilder会检测到它们,并显示一个带有java控制

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

  • 我正在使用JavaFX开发一个Java桌面应用程序,在开发UI时,我使用Scene Builder8.3.0。我遇到的问题是,当我试图将另一个包的java类添加到我的home.fxml文件时,scene builder没有在列表中显示它。但是如果java类和fxml文件在同一个包(同一个目录)中,我可以将控制器java类(HomeController.java)添加到fxml中。 如何通过scen

  • (4)调用Button.AddActionListener(...)并使用jTextField.getText() 下面是我的代码:

  • 在我的应用程序中有两个不同的阶段,它们是使用相同FXML文件的帮助屏幕。而不是创建两个FXML文件,我想只使用一个,并有两个控制器调用相同的fxml。 唯一的问题是控制器是在FXML文件中分配的。那么,有没有一种方法可以通过控制器类本身中的代码来更改指定的控制器? 我真的希望避免复制一个FXML文件,只是为了更改每个文件中的控制器。提前谢谢。