JavaFX SceneBuilder 2.0 не открывает FXML для пользовательских компонентов с FX: root в качестве основного тега макета
у меня есть пользовательский компонент с макетом в файле 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 нагрузки отлично с настройкой root по коду.
в официальном учебнике (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 говорит:удалите разметку AnchorPane, автоматически созданную IDE NetBeans.
но это не работает.
обновление
SceneBuilder 2.0 Build 7-проблема сохраняется
JDK8 b117-проблема сохраняется
ссылка JIRA:https://javafx-jira.kenai.com/browse/DTL-5968
2 ответов
спасибо разработчикам SceneBuilder.
ошибка с https://javafx-jira.kenai.com/browse/DTL-5968 исправлено.
и на SceneBuilder 2.0 build 9-проблема была решена.
вопрос закрыт.
не совсем исправлено для меня. Я все еще получаю эту ошибку.
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 dev release:
Build Information Version: 2.0-b09, Changeset: 12f988d79fe6 Date:
2013-12-19 09:33
не уверен, что обходной путь в этот момент, кроме как продолжать переключать FX: root для конкретного объекта контейнера. Лентяй.
- Кура