JavaFXリソースフォルダー内のFXMLファイルを参照するにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-21 04:32:11
オリジナル
858 人が閲覧しました

How to Reference FXML Files in JavaFX Resource Folder?

JavaFX リソースフォルダー内の FXML ファイルの参照

JavaFX GUI アプリケーションを作成する場合、コントローラー内から FXML ファイルを参照することが必要になる場合があります。これを効果的に行うには、次の点を考慮することが重要です。

汎用リソース検索:

FXML ファイルの参照は、Java の汎用リソース検索プロセスの一部です。呼び出し側プログラムがリソースの場所を FXMLLoader に渡すと、リソース検索自体は FXMLLoader ではなくアプリケーション コード内で発生します。

リソース検索の例:

ロードするにはリソース ルックアップを使用する FXML ファイルの場合、以下:

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

リソースの場所の解決:

リソースの場所を解決するには 3 つのオプションがあります:

  1. すべての FXML ファイルを次の場所に配置します。 src/main/resourcesディレクトリ:
loader.setLocation(getClass().getResource("/main.fxml"));
ログイン後にコピー
  1. すべての FXML ファイルを src/main/resources/fxml ディレクトリに配置します:
loader.setLocation(getClass().getResource("/fxml/main.fxml"));
ログイン後にコピー
  1. FXML ファイルを配置します対応するリソース内でdirectory:
loader.setLocation(getClass().getResource("main.fxml"));
ログイン後にコピー

最後のアプローチでは、読み込みクラスは Java ソース階層内の FXML ファイルと同じ相対位置に配置される必要があります。

FXMLLoader使用上の推奨事項:

  • 新規経由で FXMLLoader をインスタンス化する静的メソッドの代わりに FXMLLoader() を使用します。
  • インスタンス化された FXMLLoader に位置を設定し、ストリームからロードする代わりに、load() を使用します。
  • 位置の取得には getClass().getResource() を使用します。 URL ベースであるため、クラスに基づいています。

IDE とビルド設定:

コンパイルまたは IDE の使用中に、FXML ファイルがリソース ディレクトリからビルド出力ディレクトリにコピーされていることを確認します。

Java Jigsaw モジュラー アプリケーション:

モジュール式アプリケーションを操作する場合、リソースにアクセスする必要があります経由:

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

ではなく:

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

以上がJavaFXリソースフォルダー内のFXMLファイルを参照するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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