我在FXML文件上有自定义组件,其中包含行
<fx:root type="javafx.scene.layout.VBox" spacing="10.0" xmlns:fx="http://javafx.com/fxml">
我在SceneBuilder 1.0上创建了这个文件,但是我尝试在SceneBuilder 2.0上打开这个文件我得到了异常
java.io.IOException: javafx.fxml.LoadException: Root hasn't been set. Use method setRoot() before load.
/Users/dmitrynelepov/Development/SogazGit/smpb/SMProjectBrownRelease/SMPBProxy/engine/fxml/component_daemon_viewer.fxml:14
还必须告诉:在应用程序中,通过代码设置root,这个fxml加载很好。
在官方教程(http://docs.oracle.com/javafx/2/fxml_get_started/custom_control.htm)中告诉:
<fx:root type="javafx.scene.layout.VBox" xmlns:fx="http://javafx.com/fxml">
<TextField fx:id="textField"/>
<Button text="Click Me" onAction="#doSomething"/>
</fx:root>
正如您所见,Oracle告诉:删除NetBeans IDE自动生成的AnchorPane标记。
但它不起作用。
更新
SceneBuilder 2.0 Build 7 - 问题仍然存在
JDK8 b117 - 问题仍然存在
答案 0 :(得分:1)
感谢Scene Builder开发人员。
https://javafx-jira.kenai.com/browse/DTL-5968的错误已修复。
在Scene Builder 2.0 build 9上 - 问题解决了。
问题已经结束。
答案 1 :(得分:0)
对我来说不太固定。我仍然收到此错误。
java.io.IOException: javafx.fxml.LoadException: Root hasn't been set. Use method setRoot() before load.
/C:/path-to-my-fxml/foo.fxml:11
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:86)
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:74)
使用最新版本的Scenebuilder 2.0开发版:
Build Information Version: 2.0-b09, Changeset: 12f988d79fe6 Date:
2013-12-19 09:33
此时不确定解决方法是什么,而不是继续切换具体容器对象的fx:root。长号。