パッケージのアライメントにもかかわらず JavaFX の「場所が必要です」エラー
「java.lang.NullPointerException: 場所が必要です。」 JavaFX のエラーは、アプリケーションが FXML ファイルを見つけることができない場合に発生します。 FXML ファイルが Main クラスと同じパッケージ内にあると述べましたが、この問題の潜在的な原因をさらに詳しく調べることが重要です。
FXML ファイルの場所の確認
FXML ファイルが実際に Main クラスと同じパッケージ内にあることを確認してください。 getClass().getResource("FXMLFileName.fxml") の代わりに getClass().getClassLoader().getResource("FXMLFileName.fxml") を使用して FXML ローダーを初期化します。これにより、ローダーは Main クラスが存在するパッケージを含むクラスパス全体を確実に検索します。
Maven の問題の修正
Maven の使用中にこのエラーが発生した場合は、おそらく Maven がリソースを処理する方法が原因で発生します。 Maven では、リソースは特定のディレクトリ構造を持つ JAR ファイルにパッケージ化されます。これにより、FXML ファイルが Main クラスに関連して予想されるパスから別の場所に配置される可能性があります。
これを解決するには、次の手順を実行できます。
ResourceBundle を使用した例
ResourceBundle を使用するには、次の行を追加します。 Main クラスに次のコードを追加します。
ResourceBundle bundle = ResourceBundle.getBundle("com.kromalights.designer.entry.main"); URL url = bundle.getURL("main.fxml");
次に、Parent root = FXMLLoader.load(getClass().getResource("main.fxml")); という行を置き換えます。
Parent root = FXMLLoader.load(url);
これらの潜在的な問題に対処することで、JavaFX プログラムの「場所が必要です」エラーを解決し、FXML ファイルを正常にロードできるようになります。
以上がJavaFX FXML ファイルがメインクラスと同じパッケージ内にあるにもかかわらず、「場所が必要です」エラーをスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。