JavaFX ImageView不刷新

时间:2018-11-28 20:57:10

标签: javafx imageview

这与JavaFX有关:我有一个“产品”窗口,其中包含一个填充有产品列表的TableView,一些按钮(编辑,删除,添加,搜索)和一个包含当前所选产品图片的ImageView(此图片点击正确更改)。

单击“编辑”按钮将打开一个新窗口,在该窗口中,我可以更改产品的图像文件,并将新图片正确保存到文件系统(此处请注意:新图像将覆盖旧图像,即图像路径/文件名保持不变)。

当我关闭“编辑”窗口时,通过执行以下操作来清洁ImageView控件中的图片:

imageView.setImage(null);

然后设置“新”图像:

imageView.setImage(new Image(path));

将图像设置为null会有效删除旧图像,但是,在设置新图像后,imageView容器将继续显示“旧图像”。是否有任何需要清洗的茶饼?即使文件名相同,我如何“告诉” ImageView容器图像已更改?

感谢您的帮助,对不起我的英语不好。

1 个答案:

答案 0 :(得分:0)

两周后,我终于找到了解决方法:

  1. 我现在使用的是新文件名,而不是使用相同的文件名保存新图像,然后更新数据库表并从磁盘中删除旧文件。
  2. 不再使用imageView.setImage(new Image(path));加载图像,而是使用以下命令加载图像:

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

感谢所有尝试提供帮助的人。