Обновление изображения Java Fx из imageView - PullRequest
0 голосов
/ 05 декабря 2018

как обновить изображение, отображаемое в imageView Я установил это изображение из кода базы данных, чтобы получить изображение в imageView из БД: ...

InputStream is = resultSet.getBinaryStream("image");
OutputStream os;

os = new FileOutputStream(new File("src/sources/images/photo.jpg"));
byte[]content = new byte[1024];
int size = 0;
while((size=is.read(content))!= -1)
{
   os.write(content,0,size);
}
os.close();
is.close();
image  = new Image("file:src/sources/images/photo.jpg");

imageView.setImage(image);

изображение сохраняется в типе BLOB в базе данных MySQL

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

Код выбора файла

stage = (Stage) showScene.getScene().getWindow();

   file = fileChooser.showOpenDialog(stage);

   if(file != null){
               image = new Image(file.getAbsoluteFile().toURI().toString(),imageView.getFitWidth(),imageView.getFitHeight(),true,true);
       imageView.setImage(image);
       imageView.setPreserveRatio(true);
   }
  fis = new FileInputStream(file); // here i got error(null pointer exception) if i try to update withouting choosing image from filechooser 

Я передаю fis подготовленному заявлению для обновления, а также вставляю

1 Ответ

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

Вы получаете NullPointerException, потому что если вы не выберете файл с помощью FileChooser, ваша переменная file будет иметь значение null.Эту проблему можно решить, немного изменив оператор if.

file = fileChooser.showOpenDialog(stage);

if (file == null) {
    file = new File("path/to/default/file")
}

image = new Image(file.getAbsoluteFile().toURI().toString(),imageView.getFitWidth(),imageView.getFitHeight(),true,true);
imageView.setImage(image);
imageView.setPreserveRatio(true);

fis = new FileInputStream(file);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...