graniteds + javafx+springを使用した小さなテストプロジェクトがあります。このチュートリアルGraniteDs+JavaFxに従いました。
すべて正常に動作しますが、この例のように相対URLの画像がいくつかあるfxmlファイルを使用する場合:
<children>
<ImageView fitHeight="32.0" fitWidth="32.0" layoutX="14.0" layoutY="14.0" onMouseClicked="#menuHome" pickOnBounds="true" preserveRatio="true">
<image>
<Image url="@../images/icons/home.png" />
</image>
</ImageView>
私はこの実行をしました:
SEVERE: Could not show view
javafx.fxml.LoadException: Base location is undefined.
at javafx.fxml.FXMLLoader$Element.processPropertyAttribute(FXMLLoader.java:283)
at javafx.fxml.FXMLLoader$Element.processInstancePropertyAttributes(FXMLLoader.java:197)
at javafx.fxml.FXMLLoader$ValueElement.processStartElement(FXMLLoader.java:570)
at javafx.fxml.FXMLLoader.processStartElement(FXMLLoader.java:2314)
at javafx.fxml.FXMLLoader.load(FXMLLoader.java:2131)
at org.granite.client.tide.javafx.TideFXMLLoader.load(TideFXMLLoader.java:49)
FXMLをロードするコードは次のとおりです。
private Parent showView(Stage stage, boolean loggedIn) {
try {
Parent root = (Parent) TideFXMLLoader.load(contextManager.getContext(),
loggedIn ? "Home.fxml" : "LoginUi.fxml", loggedIn ? Home.class
: LoginUi.class);
Scene scene = new Scene(root);
stage.setScene(scene);
stage.show();
return root;
} catch (Exception e) {
log.error(e, "Could not show view");
}
return null;
}
TideFXMLLoaderを使用してベースロケーションを設定する方法はありますか?
ありがとう