无法在Netbeans JavaFX项目中集成与SceneBuilder生成的FXML

时间:2012-04-22 23:26:14

标签: java netbeans javafx-2 fxml scenebuilder

我使用场景构建器生成了一个FXML。现在的问题是,当我尝试集成它时,我得到了一堆异常行。有没有其他人偶然发现这个问题?

Apr 23, 2012 2:33:40 AM javafx.fxml.FXMLLoader logException
SEVERE: The following error occurred at line 31 in file /C:/Users/gulcoza/Documents/NetBeansProjects/Commerce/build/classes/commerce/Login.fxml[Ljava.lang.StackTraceElement;@1d59bc95
Exception in Application start method
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.javafx.main.Main.launchApp(Main.java:453)
    at com.javafx.main.Main.main(Main.java:537)
Caused by: java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
    at com.sun.javafx.application.LauncherImpl.access$000(Unknown Source)
    at com.sun.javafx.application.LauncherImpl$1.run(Unknown Source)
    at java.lang.Thread.run(Thread.java:722)
Caused by: javafx.fxml.LoadException: java.lang.InstantiationException: java.net.URL
    at javafx.fxml.FXMLLoader$InstanceDeclarationElement.constructValue(Unknown Source)
    at javafx.fxml.FXMLLoader$ValueElement.processStartElement(Unknown Source)
    at javafx.fxml.FXMLLoader.processStartElement(Unknown Source)
    at javafx.fxml.FXMLLoader.load(Unknown Source)
    at javafx.fxml.FXMLLoader.load(Unknown Source)
    at javafx.fxml.FXMLLoader.load(Unknown Source)
    at javafx.fxml.FXMLLoader.load(Unknown Source)
    at commerce.Commerce.start(Commerce.java:25)
    at com.sun.javafx.application.LauncherImpl$5.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl$4.run(Unknown Source)
    at com.sun.javafx.application.PlatformImpl$3.run(Unknown Source)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
    at com.sun.glass.ui.win.WinApplication$2$1.run(Unknown Source)
    ... 1 more
Caused by: java.lang.InstantiationException: java.net.URL
    at java.lang.Class.newInstance0(Class.java:357)
    at java.lang.Class.newInstance(Class.java:325)
    ... 15 more
Java Result: 1

我认为FXML很好,因为它适用于从SceneBuilder预览它。感谢

4 个答案:

答案 0 :(得分:2)

很抱歉我迟到了。

  <stylesheets>
    <URL value="@style.css" />
  </stylesheets>

错误行是URL行。它由SceneBuilder生成。

PS:同时将JavaFX版本更新为2.2+应解决此问题。

答案 1 :(得分:2)

您也可以从SceneBuilder中的FXML中删除控制器,然后手动添加控制器java文件中存在的所有fxID(用@FXML注释)。在场景构建器中重新添加控制器类后,仍然无法识别fxID,但是fxid =&#34; fxid name&#34;将被添加到FXML文件本身,因此当您运行javaFX程序时它将起作用。

答案 2 :(得分:0)

嗯,没有你的fxml文件或代码很难理解任何东西。但无论如何:这个错误是在所有项目中发生的还是只发生在这个项目上?如果不仅如此 - 也许您使用旧版本的javafx sdk或其他一些全局配置是错误的。如果只有这个问题 - 尝试从FXML文件中删除组件,以本地化问题。

答案 3 :(得分:0)

好吧,不是如何加载FXML,但这样我就犯了错误

primaryStage.setTitle ("FXML TableView Example");
    primaryStage.setScene
    ((Scene) FXMLLoader.load (getClass (). GetResource ("fxml_tableview.fxml")));
    primaryStage.show();

如果我跑的那样:

Parent FXMLLoader.load root = (getClass (). GetResource ("Prueba.fxml"));
     primaryStage.setTitle ("FXML TableView Example");
     primaryStage.setScene (new Scene (root));
     primaryStage.show ();

希望这有帮助。