2012-04-22 76 views
2

我使用場景生成器生成了FXML。現在的問題是當我嘗試整合它時,我得到了一堆異常行。其他人是否會遇到這個問題?無法在Netbeans JavaFX項目中集成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預覽它。謝謝

+0

'Login.fxml'中的行'31'處是什麼? – Torious 2012-04-23 00:16:41

+0

@Torious 2012-04-23 09:55:39

+0

從這些例外情況看,該行的URL看起來不正確。在'31'的'Login.fxml'中它說了什麼URL? – Torious 2012-04-23 15:54:01

回答

2

對不起,我遲到的回覆。

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

錯誤的行是URL行。它由SceneBuilder生成。 PS:同時將JavaFX版本更新到2.2+可以解決這個問題。

0

那麼,它很難理解任何沒有你的fxml文件或代碼。但無論如何:這個錯誤是否發生在所有的項目中,還是僅僅與這個項目有關?如果不僅如此 - 也許你使用舊版本的javafx sdk或者其他一些全局配置是錯誤的。如果只有這個問題存在,請嘗試從FXML文件中刪除組件,以便本地化問題。

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(); 

希望這有助於。

2

您還可以從SceneBuilder中的FXML中刪除控制器,然後手動添加控制器java文件中存在的所有fxID(用@FXML註釋)。在scenebuilder中重新添加控制器類後,fxID仍然不會被識別,但fxid =「fxid name」將被添加到FXML文件本身,因此當您運行javaFX程序時,它將起作用。