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

时间:2013-01-30 07:27:40

标签: netbeans javafx-2 javafx java-7 scenebuilder

我用java se7安装了netbeans,javafx样本运行正常。在scenebuilder中,我可以为我的控制器中定义的每个控件选择一个ID,并使用@FXML进行注释。但是,我喜欢我的项目组织。当我创建一个新的包,并在那里移动我的FXML文件时,(myapp / views)和控制器保持在它所在的根目录 - > myapp,然后在scenebuilder中似乎没有找到id。

我知道FXML中的'控制器类',但由于我没有移动我的控制器,所以不应该更改。

更具体地说,当我的控制器和fxml都在包'holidayapp'中时,它可以工作。将fxml移动到子包holidayapp / views',不起作用。控制器类仍然是

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

因为HolidayViewController保留在根包中。除了将fxml文件从主包移动到子包中之外别无其他。

我想在我的场景构建器中看到来自holidayViewController的id。在子包中使用fxml进行编译和运行从来没有任何问题。

由于

2 个答案:

答案 0 :(得分:2)

我认为你可能会遇到以下问题:

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

如果您认为有,请考虑投票和/或评论此问题。

答案 1 :(得分:0)

我使用它的方法是将我的Main类放入视图(扩展Application的那个)。这使我可以访问我的Controller类,它们的变量和方法。这适用于SceneBuilder 1.1。

我只能说使用Eclipse而不是NetBeans,所以这样做可能仍然没有结果。