JavaFX ImageView не обновляется - PullRequest
0 голосов
/ 28 ноября 2018

Это относится к JavaFX: у меня есть окно «Продукты», которое содержит TableView, заполненный списком продуктов, несколько кнопок («Редактировать», «Удалить», «Добавить», «Поиск») и ImageView с изображением выбранного в данный момент продукта (эторис меняется правильно при нажатии).

Нажатие на кнопку «Редактировать» открывает новое окно, в котором я могу изменить файл изображения для продукта и правильно сохранить новое изображение в файловой системе (одно замечание: новое изображение заменяет старое,это означает, что путь к файлу / имя файла остается прежним).

Когда я закрываю это окно «Редактировать», я очищаю изображение в элементе управления ImageView, выполняя:

imageView.setImage(null);

и затем я устанавливаю «новое» изображение:

imageView.setImage(new Image(path));

Установка нулевого значения для изображения эффективно удаляет старое изображение, однако контейнер imageView продолжает показывать «старое изображение»после установки нового.Есть ли какой-либо вид chache, который нужно очистить?Как я могу «сообщить» контейнеру ImageView, что изображение изменилось, даже если имя файла такое же?

Спасибо за помощь и извините за мой плохой английский.

1 Ответ

0 голосов
/ 10 декабря 2018

Через две недели я наконец нашел решение:

  1. Вместо сохранения нового изображения с тем же именем файла, я теперь использую новое имя файла, затем обновляю таблицу базы данных и удаляю старый файлс диска.
  2. Изображения больше не загружаются с помощью imageView.setImage(new Image(path)); Вместо этого теперь я загружаю изображения с помощью:

    File img = new File(pathObtainedFromDatabase); InputStream isImage = (InputStream) new FileInputStream(img); imageView.setImage(new Image(isImage));

Спасибо всем, кто пытался помочь.

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