JAVA FX ImageView загружает только определенные изображения при запуске - PullRequest
0 голосов
/ 30 сентября 2018

В настоящее время я работаю над покерным приложением для удовольствия, и я столкнулся с другой проблемой при попытке работать с изображениями.

Прямо сейчас моя структура для моих изображений следующая: JavaFXApplication1 \ src \ images

, что папка "images" содержит еще две папки, одна из которых является "карточками" идругой "playerImages".Вот скриншот этого также: структура проекта

В настоящее время я использую относительный путь документа в конструкторе сцены для первоначальной загрузки изображений для каждой из карт и игроков.для каждой из карт изначально путь к изображению - это "@ .. \ images \ cards \ back.png", который устанавливается в scenebuilder.этот метод прекрасно работает при запуске приложения.однако для изображений игроков рядом с картами у меня есть, например, "@ .. \ images \ playerImages \ player1.png", и по какой-то причине это не работает.

В scenebuilder "player1.png"изображение показывает, где оно должно, но исчезает, когда я запускаю все.

Я прочитал Изображения, которые не показывались при запуске основным, но показывались на Scene Builder , но я не уверен, что решение для меня такое же, как мои изображения в моемисходная папка.

Я попытался использовать fx: id и установить изображение вручную в своем классе контроллера, но получил сообщение об ошибке, указывающее, что мой поток ввода был нулевым.

Я также попытался просто добавить "player1".png "в мою корневую папку с изображениями и используя этот путь, и это все еще не работает.тем не менее, когда я изменяю путь к изображению player1 на что-либо в папке карт, это работает.Я не понимаю, почему это работает для изображений в папке карт, но не в папке playerImages.Обе эти папки находятся в одном месте.

Я прошу прощения, если на этот вопрос уже ответили где-то в другом месте, и я слишком не обращаю на это внимания, чтобы увидеть это, но любое понимание этой, казалось бы, простой проблемы будет с благодарностью.

1 Ответ

0 голосов
/ 30 сентября 2018

если у вас похожая структура проекта:

--main
  --java
    --src
    --resources
      --images
       --cards
         back.png
       --players
         player1.png

вы можете устанавливать изображения из ресурсов в вашем java-коде.Но вам нужно использовать getResources()

Например:

@FXML
private ImageView imageView;

Image image = new Image(getClass().getResourceAsStream("/images/players/player1.png"));
imageView = new ImageView(image);

Конечно, каталог "resources: shuild помечен как ресурсы root

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...