リソースフォルダー内の JavaFX FXML ファイルの参照
JavaFX GUI アプリケーションを構築する場合、多くの場合、src/main/resources フォルダーに保存されている FXML ファイルにアクセスする必要があります。これを行うには、質問で述べたように、FXMLLoader.load() メソッドを使用できます。
汎用リソース検索情報
JavaFX FXML ファイル検索は、汎用リソース検索プロセスの一部です。ジャワでは。リソースの場所は入力として FXMLLoader に渡されます。したがって、リソース ルックアップは FXMLLoader 自体ではなく、アプリケーション コードの一部です。
JavaFX アプリケーションのリソース ルックアップの詳細については、以下を参照してください。
- [正しいパスの決定] FXML、CSS、画像、その他用リソース](https://stackoverflow.com/a/33169100/17772320)
- [JavaFX のリソース ファイルの配置場所](https://edencoding.com/where-to-put-resource-files -in-javafx/)
例使用法
FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/main.fxml"));
Parent content = loader.load();
ログイン後にコピー
場所解決オプション
FXML ファイルの場所を解決するにはいくつかの方法があります。
-
すべての FXML ファイルを src/ に配置します。メイン/リソースdirectory:
- loader.setLocation(getClass().getResource("/main.fxml"));
-
専用の src/ を作成しますFXML の main/resources/fxml ディレクトリfiles:
- loader.setLocation(getClass().getResource("/fxml/main.fxml"));
-
FXML ファイルを配置Java ソースをミラーリングする対応するリソース ディレクトリ内階層:
- src/main/resources/com/mycompany/myapp:
- loader.setLocation(getClass().getResource("main.fxml"));
FXMLLoader の使用法推奨事項
- 静的メソッドではなく、新しい FXMLLoader() を使用して FXMLLoader をインスタンス化します。
- FXMLLoader に場所を設定し、ストリームからロードする代わりに、load() を使用します。
- getClass().getResource() を使用して、URL ベースの場所を取得します。
IDE とビルドの設定
IDE またはビルド ツールが FXML ファイルをリソース ディレクトリからビルド出力ディレクトリにコピーしていることを確認します。 Intellij の設定については、
- [Intellij で通常の Java プロジェクトを JavaFX プロジェクトに変換する方法](https://dzone.com/articles/how-to-convert-a-normal) を参照してください。 -java-project-into-a-javafx-1)
Java ジグソー モジュラーアプリケーション
Java モジュラー アプリケーションでは、クラス ローダーを使用したリソースの検索には注意してください。代わりに、クラスからリソースに直接アクセスします:
- 正解: ComboBoxStyling.class.getResource("/css/styleclass.css");
- 誤: ComboBoxStyling.class.getClassLoader( ).getResource("/css/styleclass.css");
以上が「src/main/resources」フォルダーに保存されている JavaFX FXML ファイルを参照するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。