我有一个自定义组件,它在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
还必须说明的是:在应用程序中,通过代码设置根节点可以很好地加载此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 - 问题仍然存在