他のjarファイルでFXMLを開くフレームワークを作成しました。これはすべて私のFXMLのために働くと私は本当にこれを変更する必要はありませんfx:リソースが別のJARにある場合のインクルード
FXMLLoader loader = new FXMLLoader();
Parent node = loader.load(getClass().getClassLoader().getResource(fxml).openStream());
...
(FXML)は、DBのクエリから渡された文字列です:私はそれらを開くには、次を使用します。
私は別のウィンドウと非常によく似たインプリメンテーションを持つ1つの新しいウィンドウを持っていて、FXLをfx:includeと共有したいと思っていました。
ただし、これはエラーをスローします。javafx.fxml.LoadException:ベースの場所は未定義です。私の全体の実装を変更せず -
が、私はこの問題を回避とにかくありlinked files
については、このリンクを見つけましたか?もしそうでなければ、ロジックを複製するだけです。
ありがとうございました。
を試してみて、私はそれがこの/fxml/location/view.fxmlのような完全な場所を使用して、実行時に動作させることができました - しかし、それSceneBuilderで開くことができません –
ローダーで位置が定義されていないため(一部の機能が使用できないようにするため)、 'InputStream'バージョンの' FXMLLoader.load(...) 'を使うのは悪い考えです。場所を指定して、引数なしの 'load()'メソッドを呼び出します。 –