0

こんにちは。私は公式の JavaFX FXML チュートリアル (ソースコードはこちら) に取り組んでいます。ただし、Netbeans IDE を使用してコンパイルすると、次のエラーが発生します。

誰でもこれで私を助けることができます

JDK 1.7 と JavaFX 2.0 を実行しています

init: 削除中:
C:\Users\riash\Documents\Riaz\Personal\Java\Samples\FXMLExample\build\built-jar.properties
deps-jar: プロパティファイルを更新中:
C:\Users\riash\Documents\Riaz\Personal \Java\Samples\FXMLExample\build\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\Documents\Riaz\Personal\Java\Samples\FXMLExample\dist\FXMLExample.jar を
C:\Users\riash\Documents\Riaz\Personal\Java\Samples\FXMLExample\dist\FXMLExample.jar としてnb-jfx

警告: 署名者証明書は 6 か月以内に期限切れになります。Enter Passphrase for keystore: Enter key password for nb-jfx: Launching task from C:\Program Files (x86)\Oracle\JavaFX 2.0 SDK\tools\ant-javafx.jar それ自体への jar コピーをスキップする: FXMLExample.jar jfx-deployment : jar: 実行: 2012 年 6 月 19 日 9:10:33 PM javafx.fxml.FXMLLoader logException SEVERE: ファイル
/C:/Users/riash/Documents/Riaz/Personal/Java/Samples/の 48 行目で次のエラーが発生しましたFXMLExample/build/classes/fxmlexample/fxml_example.fxml[Ljava.lang.StackTraceElement;@1bb3a11
アプリケーション起動メソッドで例外
java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
で sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) で java.lang.reflect.Method.invoke(Method.java:601)
で com. com.javafx.main.Main.main(Main.java:537)
での javafx.main.Main.launchApp(Main.java:453)

原因: java.lang.RuntimeException:
com.sun でのアプリケーション開始メソッドの例外。 javafx.application.LauncherImpl.launchApplication1 (不明なソース)
com.sun.javafx.application.LauncherImpl.access$000 (不明なソース)
com.sun.javafx.application.LauncherImpl$1.run (不明なソース)
で java.lang. Thread.run(スレッド.java:722)

原因: javafx.fxml.LoadException: javafx.scene.layout.GridPane にデフォルト プロパティがありません。

4

2 に答える 2

1

JavaFX ランタイムを少なくとも 2.1 にアップグレードすると、問題が解決します。

参照するサンプル ソースは、2.0 ランタイムではなく 2.1 ランタイム用に設計されています。

新しいソースが 2.0 と互換性がない理由は、2.1 が継承された @DefaultProperty アノテーションを Pane クラスに追加するためです (このアノテーション付きの動作は GridPane によって継承されます)。このため、2.1 を使用して fxml を作成すると、デフォルトで設定される特定のタグを省略できるため、2.1 の fxml は 2.0 に必要な内容よりも簡潔になります。これについての完全な説明は、Dustin Marx のブログで提供されています。

于 2012-06-20T17:54:30.747 に答える
0

JavaFx 2.0 から JavaFx 2.2 にアップグレードすると、この問題が修正されます。

于 2013-05-11T00:37:47.227 に答える