2

fxml ファイルで fx:define タグを使用しようとすると、たとえば

<fx:define>
   <Tooltip fx:id="thetip" prefWidth="120" wrapText="true" text="Here's a tip of the day: prefWidth and wrapText attrs control the behavior of the tip."/>
</fx:define> 
<Button tooltip="${thetip}" text="Tip Button" />

( https://docs.oracle.com/javafx/2/api/javafx/fxml/doc-files/introduction_to_fxml.html#define_elementsも参照してください)

... これは Scene Builder では機能せず、fxml ファイルを開こうとするとエラー メッセージ (以下を参照) が表示されます。

Scene Builder は fx:define タグをまったくサポートしていますか?

  • はいの場合: どうすれば正しく使用できますか?

  • いいえの場合: Scene Builder でサポートされている (サポートされていない) すべてのタグのリストはどこにありますか?


java.io.IOException: javafx.fxml.LoadException: /D:/workspace/PowerTools/src/isi/power/tools/gui/manager/ScenarioManager.fxml:24
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:92)
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:80)
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMDocument.<init>(FXOMDocument.java:95)
    at com.oracle.javafx.scenebuilder.kit.editor.EditorController.updateFxomDocument(EditorController.java:2370)
    at com.oracle.javafx.scenebuilder.kit.editor.EditorController.setFxmlTextAndLocation(EditorController.java:655)
    at com.oracle.javafx.scenebuilder.app.DocumentWindowController.loadFromFile(DocumentWindowController.java:386)
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.performOpenFiles(SceneBuilderApp.java:579)
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.handleOpenFilesAction(SceneBuilderApp.java:447)
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.handleLaunch(SceneBuilderApp.java:427)
    at com.oracle.javafx.scenebuilder.app.AppPlatform.requestStartGeneric(AppPlatform.java:139)
    at com.oracle.javafx.scenebuilder.app.AppPlatform.requestStart(AppPlatform.java:106)
    at com.oracle.javafx.scenebuilder.app.SceneBuilderApp.start(SceneBuilderApp.java:371)
    at com.sun.javafx.application.LauncherImpl$8.run(LauncherImpl.java:837)
    at com.sun.javafx.application.PlatformImpl$7.run(PlatformImpl.java:335)
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:301)
    at com.sun.javafx.application.PlatformImpl$6$1.run(PlatformImpl.java:298)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl$6.run(PlatformImpl.java:298)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
    at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
    at com.sun.glass.ui.win.WinApplication.access$300(WinApplication.java:39)
    at com.sun.glass.ui.win.WinApplication$4$1.run(WinApplication.java:112)
    at java.lang.Thread.run(Thread.java:744)
Caused by: javafx.fxml.LoadException: 
/D:/workspace/PowerTools/src/isi/power/tools/gui/manager/ScenarioManager.fxml:24
    at javafx.fxml.FXMLLoader.constructLoadException(FXMLLoader.java:2617)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2595)
    at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2425)
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.load(FXOMLoader.java:89)
    ... 22 more
Caused by: java.lang.NullPointerException
    at com.oracle.javafx.scenebuilder.kit.fxom.FXOMLoader.endElement(FXOMLoader.java:304)
    at javafx.fxml.FXMLLoader.processEndElement(FXMLLoader.java:2842)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2532)
    ... 24 more
4

2 に答える 2

1
于 2016-05-01T14:16:17.623 に答える
0

エラーメッセージが定義とは別の行にあることに気付いたので、定義をファイルの最後に移動すると、問題なく動作するように見えました。

更新: 今は動作しないようですが、fx:define を削除し、scenebuilder で編集してから fx:define を戻すと動作するようになります

于 2015-01-31T21:58:33.223 に答える