美好的一天, 我正在通过官方JavaFX FXML教程(参见源代码here)。但是,当我使用Netbeans IDE编译它时,我收到以下错误:
任何人都可以帮助我吗
我正在运行JDK 1.7和JavaFX 2.0
init:删除:
C:\ Users \用户riash \文档\里亚兹\个人\ Java的\样本\ FXMLExample \建立\ built-jar.properties
deps-jar:更新属性文件:
C:\ Users \用户riash \文档\里亚兹\个人\ Java的\样本\ FXMLExample \建立\ built-jar.properties
编译:检测到的JavaFX Ant API版本1.1启动任务
来自C:\ Program Files(x86)\ Oracle \ JavaFX 2.0 SDK \ tools \ ant-javafx.jar
签署JAR:
C:\ Users \用户riash \文档\里亚兹\个人\ Java的\样本\ FXMLExample \ DIST \ FXMLExample.jar 到
C:\ Users \用户riash \文档\里亚兹\个人\ Java的\样本\ FXMLExample \ DIST \ FXMLExample.jar 作为nb-jfx
警告:签名者证书将在六个月内到期。输入 密钥库的密码短语:输入nb-jfx的密钥密码:启动 来自C:\ Program Files(x86)\ Oracle \ JavaFX 2.0的任务 SDK \ tools \ ant-javafx.jar将jar副本复制到自身:FXMLExample.jar jfx-deployment:jar:run:Jun 19,2012 9:10:33 PM javafx.fxml.FXMLLoader logException SEVERE:以下错误 发生在文件
第48行 /C:/Users/riash/Documents/Riaz/Personal/Java/Samples/FXMLExample/build/classes/fxmlexample/fxml_example.fxml[Ljava.lang.StackTraceElement;@1bb3a11
应用启动方法中的例外情况
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(原生方法)
在 sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 在
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:601)
在 com.javafx.main.Main.launchApp(Main.java:453)
在 com.javafx.main.Main.main(Main.java:537)
造成: java.lang.RuntimeException:Application start方法中的异常
at com.sun.javafx.application.LauncherImpl.launchApplication1(未知 来源)
在com.sun.javafx.application.LauncherImpl.access $ 000(未知 来源)
在com.sun.javafx.application.LauncherImpl $ 1.run(未知 来源)
在java.lang.Thread.run(Thread.java:722)
由此引起: javafx.fxml.LoadException:javafx.scene.layout.GridPane没有 默认属性。
答案 0 :(得分:1)
将JavaFX运行时升级到至少2.1将解决您的问题。
您引用的示例源是为2.1运行时设计的,而不是2.0运行时。
新源与2.0不兼容的原因是2.1将继承的@DefaultProperty注释添加到Pane类(此注释行为由GridPane继承)。因此,当您使用2.1编写fxml时,您可以省略某些默认的标记,使2.1 fxml比2.0所需的更简洁。其中full explanation由Dustin Marx在他的博客中提供。
答案 1 :(得分:0)
从JavaFx 2.0升级到JavaFx 2.2将解决此问题。