私は現在、netbeans 7.2 を使用して Java FX 2.1 で管理者ビルドに取り組んでいます。
次の問題があります。
私はこの特定のツールを MVC パターンで開発しているので、Model、View、Controller という 3 つのパッケージを作成しました。
私の問題は、netbeans でプロジェクトをビルドするときに、ビュー パッケージの外にあると思われるファイルのみを読み取ることです。コンテキスト パスを示します。
.../administradorInfinix/view/
.../administradorInfinix/controller/
.../administradorInfinix/model
そのため、ビュー パッケージの外にある場合は、ビューに関する fxml ファイルのみを読み取ります ( .../administradorInfinix/
)
これは、ファイルのアドレスを設定する場所です。
private void irInicioSesion() {
try {
replaceSceneContent("InicioSesion.fxml");
} catch (Exception ex) {
Logger.getLogger(AdministradorINFINIX.class.getName()).log(Level.SEVERE, null, ex);
}
}
ファイル名がInicioSesion.fxml
であることがわかります。これはビュー パッケージ内にあるはずですが、この場合は読み込まれません。
これは、fxml ファイルの検索に使用している replaceSceneContent です。
private Parent replaceSceneContent(String fxml) throws Exception {
Parent page = (Parent) FXMLLoader.load(AdministradorINFINIX.class.getResource(fxml), null, new JavaFXBuilderFactory());
Scene scene = stage.getScene();
if (scene == null) {
scene = new Scene(page,548,416);
//scene.getStylesheets().add(AdministradorINFINIX.class.getResource("demo.css").toExternalForm());
stage.setScene(scene);
} else {
stage.getScene().setRoot(page);
}
stage.sizeToScene();
return page;
}
そして、これは実行しようとしたときに表示されるエラーです (正常にビルドされますが、実行されません)。
> administradorinfinix.AdministradorINFINIX irInicioSesion
Grave: null
java.lang.IllegalStateException: Location is not set.
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at javafx.fxml.FXMLLoader.load(Unknown Source)
at administradorinfinix.AdministradorINFINIX.replaceSceneContent(AdministradorINFINIX.java:126)
at administradorinfinix.AdministradorINFINIX.irInicioSesion(AdministradorINFINIX.java:110)
at administradorinfinix.AdministradorINFINIX.start(AdministradorINFINIX.java:46)
at com.sun.javafx.application.LauncherImpl$5.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$4.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl$3.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.access$100(Unknown Source)
at com.sun.glass.ui.win.WinApplication$2$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:722)
110行目はどこですか
replaceSceneContent("InicioSesion.fxml");
そして126行目は
Parent page = (Parent) FXMLLoader.load(AdministradorINFINIX.class.getResource(fxml), null, new JavaFXBuilderFactory());
この問題の解決にご協力いただければ幸いです。