Как правильно указать URL для ImageView в SceneBuilder - PullRequest
1 голос
/ 09 мая 2019

У меня следующая структура проекта:

src
    com.hello
        RootController

resources
    com.hello
        root.fxml
        image.png

В scenebuilder я добавил узел ImageView, а затем установил путь к @image.png. Он отлично работает в SceneBuilder, но если я запускаю его в Eclipse, я получаю следующую ошибку:

Caused by: java.lang.IllegalArgumentException: Invalid URL: Invalid URL or resource not found
    at javafx.scene.image.Image.validateUrl(Image.java:1118)
    at javafx.scene.image.Image.<init>(Image.java:693)
    at com.sun.javafx.fxml.builder.JavaFXImageBuilder.build(JavaFXImageBuilder.java:47)
    at com.sun.javafx.fxml.builder.JavaFXImageBuilder.build(JavaFXImageBuilder.java:37)
    at javafx.fxml.FXMLLoader$ValueElement.processEndElement(FXMLLoader.java:763)
    at javafx.fxml.FXMLLoader.processEndElement(FXMLLoader.java:2823)
    at javafx.fxml.FXMLLoader.loadImpl(FXMLLoader.java:2532)
    ... 11 more
Caused by: java.lang.IllegalArgumentException: Invalid URL or resource not found
    at javafx.scene.image.Image.validateUrl(Image.java:1110)
    ... 17 more

Как правильно указать путь к изображению, учитывая структуру моего проекта?

Ответы [ 2 ]

0 голосов
/ 09 июня 2019

Попробуйте так.

private ImageView imageView = new ImageView();

String url = "/images/cards/As.png";
Image image = new Image(getClass().getResourceAsStream(url));
        imageView .setFitHeight(726); //Set your image Height
        imageView .setFitWidth(500); //Set your image width.
        imageView .setImage(image);

Иногда относительный путь не может правильно идентифицировать файл ресурса, но /images/cards/As.png ставит косую черту / в начало url, которое может идентифицировать ресурс.

Надеюсь, вы получили ответ.

0 голосов
/ 12 мая 2019

В файле fxml установите относительный путь изображения в качестве пути к изображению.

 <ImageView fitHeight="17.0" fitWidth="22.0" pickOnBounds="true" preserveRatio="true">
           <image>
              <Image url="@/com/hello/image.png" />
           </image>
 </ImageView>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...