ホームページ > Java > &#&チュートリアル > Maven プロジェクトで FXML ファイルを見つける方法は?

Maven プロジェクトで FXML ファイルを見つける方法は?

Barbara Streisand
リリース: 2024-11-18 21:03:02
オリジナル
559 人が閲覧しました

How to Locate FXML Files in Maven Projects?

Maven プロジェクトからの FXML ファイルの参照

JavaFX アプリケーションでは、次のようなコードを使用して、リソース フォルダーから FXML ファイルをロードすることを目的としています。

FXMLLoader.load(getClass().getResource("main.fxml"));
ログイン後にコピー

リソース フォルダーがビルド パス内にあるときに、エラーが発生します。これを解決するために、FXML ファイルを見つけるためのオプションを調べてみましょう。

Java/JavaFX の汎用リソース ルックアップ

FXML ファイルの場所のルックアップは Java の汎用リソース ルックアップのサブセットであることを思い出してください。リソース ファイル (FXML ファイルを含む) は、クラスパスに相対して指定されます。包括的なガイドについては、次を参照してください。

  • JavaFX リソースの検索: https://javafx-docs.github.io/javafx-docs/javafx/2.2/resources/resource_lookup.htm
  • Eden ガイド: https://edencoding.com/javafx-resource-files

使用例

次のコード スニペットは、FXML ファイルのロードを示しています:

FXMLLoader loader = new FXMLLoader();
loader.setLocation(getClass().getResource("/main.fxml"));
Parent content = loader.load();
ログイン後にコピー

場所解決オプション

リソース フォルダー内の FXML ファイルの場所を指定するには、いくつかのオプションがあります。

1.すべての FXML ファイルを src/main/resources:

loader.setLocation(getClass().getResource("/main.fxml"));
ログイン後にコピー

2 に配置します。 FXML ファイルを src/main/resources/fxml:

loader.setLocation(getClass().getResource("/fxml/main.fxml"));
ログイン後にコピー

に配置します。3. FXML ファイルを対応するリソース ディレクトリに配置します:

FXML をロードするクラスが src/main/java/com/mycompany/myapp にあると仮定すると、FXML ファイルを次の場所に配置できます:

src/main/resources/com/mycompany/myapp/main.fxml
ログイン後にコピー

次の方法を使用してロードします。

loader.setLocation(getClass().getResource("main.fxml"));
ログイン後にコピー

FXMLLoader の使用に関する推奨事項

  • 静的メソッドではなく、新しい FXMLLoader() を介して FXMLLoader をインスタンス化します。
  • インスタンス化された FXMLLoader の位置を取得し、ストリームからロードする代わりに、load() を呼び出します。
  • getClass().getResource() を使用して、URL ベースの位置を取得します。

IDEおよびビルド設定

IDE またはビルド ツールが FXML ファイルをリソース ディレクトリからビルド出力ディレクトリにコピーしていることを確認します。これを管理するには、Intellij 設定ガイダンスを参照してください: https://stackoverflow.com/questions/25232751/how-to-convert-a-normal-java-project-in-intellij-into-a-javafx-project.

Java ジグソー モジュラー アプリケーション

Java ジグソー アプリケーションでは、クラス ローダーではなく、クラスから直接リソースを取得します。

// Avoid:
ComboBoxStyling.class.getClassLoader().getResource("/css/styleclass.css");

// Use:
ComboBoxStyling.class.getResource("/css/styleclass.css");
ログイン後にコピー

以上がMaven プロジェクトで FXML ファイルを見つける方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート