从Oracle执行JavaFX FXML教程时出错

时间:2012-06-20 01:22:25

标签: java fxml

美好的一天, 我正在通过官方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没有   默认属性。

2 个答案:

答案 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将解决此问题。