ロケーションが要求されている?

stackoverflow.com

getClass().getResource("ファイル名.fxml") で URL が返却されるらしいが、なぜかエラーが起こるので調べまくっていた。

上記のサイトの回答者のおかげでようやく動いた。

 

primaryStage.setTitle("FxmlSmpl");
FXMLLoader fxml = new FXMLLoader(new File("fxmlSmpl.fxml").toURI().toURL());
HBox root = fxml.load();
Scene scene = new Scene(root);
primaryStage.setScene(scene);
primaryStage.show();

 

数時間溶けた。

これはこれでいいんだけど結局 getClass().getResource("ファイル名.fxml") で

ロケーションが要求(ナル返却)される訳が分からなくてまた少し調べてたら

 

takah.hatenablog.com

 

まだ試してないが出来るかも・・・。コンパイル成功したら感謝したい。*1

後日追記

HBox root = FXMLLoader.load(getClass().getResource("fxmlSmpl.fxml")) のように FXMLLoader インスタンスを作らない*2だの getClass().getResource を getClass().getClassLoader().getResource に変えてみるだのあがくもののロケーションがないと返される。

fxml ファイルの階層(orパス)の位置を確認しても合ってるように見える。

そこでふと友人がビルドをしたか聞いてくれた。

ビルドしていなかった。

ビルドして実行したら動きました。

ん~~~~~~~^~^

 

*1:6/16追記:できなかった… ナンナンダー><

*2:インスタンス作るよりこの方がいいらしい。