【问题标题】:Javafx SceneBuilder 2.0 cant load fxmlJavafx SceneBuilder 2.0 无法加载 fxml
【发布时间】:2017-03-17 10:05:01
【问题描述】:

我遇到了SceneBuilder 的问题,打开我的main.fxml。运行项目时一切正常,但我无法在SceneBuilder 下进行修改。每次我想添加到main.fxml 时,我都需要删除包含做我想做的事情并手动将代码粘贴到fxml 中而不是SceneBuilder(不能包含在标签下?)。

main.fxml

  <Tab text="Details">
           <content>
              <ScrollPane prefHeight="200.0" prefWidth="200.0">
                 <content>
                    <fx:include fx:id="details" source="/view/tab/details.fxml" /> // line number 59
                 </content>
              </ScrollPane>
           </content>
      </Tab>

我的结构包

...
|---> view
      main.fxml
      |--> view.tab
           details.fxml
           ...

来自 SceneBuilder 的错误

java.io.IOException: javafx.fxml.LoadException: 
/C:/Users/Michal/Dropbox/workspace/Java/Feeder%20v%202.0/src/view/main.fxml:59
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:92)
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:80)
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:95)
at com.oracle.javafx.scenebuilder.kit.editor.EditorController.updateFxomDocument(EditorController.java:2370)
at com.oracle.javafx.scenebuilder.kit.editor.EditorController.setFxmlTextAndLocation(EditorController.java:655)
at com.oracle.javafx.scenebuilder.app.DocumentWindowController.loadFromFile(DocumentWindowController.java:386)
at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.performOpenFiles(SceneBuilderApp.java:579)
at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.handleOpenFilesAction(SceneBuilderApp.java:447)
at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.handleLaunch(SceneBuilderApp.java:427)
at com.oracle.javafx.scenebuilder.app.AppPlatform.requestStartGeneric(AppPlatform.java:139)
at com.oracle.javafx.scenebuilder.app.AppPlatform.requestStart(AppPlatform.java:106)
at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.start(SceneBuilderApp.java:371)
at com.sun.javafx.application.LauncherImpl$8.run(LauncherImpl.java:837)
at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335)
at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301)
at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39)
at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112)
at java.lang.Thread.run(Thread.java:744)
Caused by: javafx.fxml.LoadException: 
/C:/Users/Michal/Dropbox/workspace/Java/Feeder%20v%202.0/src/view/main.fxml:59
at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2617)
at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2595)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425)
at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:89)
... 22 more
Caused by: java.io.FileNotFoundException: view\tab\details.fxml (System nie może odnaleźć określonej ścieżki)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:131)
    at java.io.FileInputStream.<init>(FileInputStream.java:87)
    at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:90)
    at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:188)
    at java.net.URL.openStream(URL.java:1038)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2440)
    at javafx.fxml.FXMLLoader.access$2500(FXMLLoader.java:104)
    at javafx.fxml.FXMLLoader$IncludeElement.constructValue(FXMLLoader.java:1144)
    at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:740)
    at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2723)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2527)
    ... 24 more

【问题讨论】:

  • 那么你是问即使添加了正确的路径也无法加载fxml?
  • 是的,但它只在sceneBuilder中。当我运行应用程序工作正常。
  • 你可以试试这个 ../tab/details.fxml 而不是 /view/tab/details.fxml
  • 工作,但是...我现在无法导出到 .jar 文件导致错误原因:java.net.MalformedURLException:无法打开 URL 'rsrc:tab/details.fxml' 的 InputStream跨度>
  • 那么我猜你需要从java代码本身添加fxml,而不是从场景构建器中添加,虽然我不太确定

标签: java javafx fxml scenebuilder


【解决方案1】:

不再支持 SceneBuilder 2.0。一家名为 Gluon 的公司现在正在维护它。我在使用 Gluon 版本的 &lt;fx:include&gt; 标签上取得了成功。试试看:

http://gluonhq.com/labs/scene-builder/

【讨论】:

    猜你喜欢
    • 2017-02-08
    • 2012-05-11
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 2015-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多