我有一个名为cache.png
的文件,该文件在ImageView中显示如下:
公共类ImagePanel扩展了UiPart {
private static final String FXML = "ImagePanel.fxml";
@FXML
private ImageView imageView;
public ImagePanel() {
super(FXML);
imageView.setImage(new Image("/assets/cache.png"));
}
现在,我有了一种方法,该方法实际上将现有的cache.png
文件替换为另一个文件,但保留了相同的名称,即cache.png
public void importImage(Image image){
Path from = Paths.get(image.getUrl());
Path to = Paths.get("src/main/resources/assets/cache.png");
try {
Files.copy(from, to, StandardCopyOption.REPLACE_EXISTING);
} catch (IOException e) {
System.out.println(e.toString());
}
//TODO
}
运行我的应用程序时,Imageview自然不会更新。如何通知Imageview手动重新绘制节点,以便可以显示新图像?我尝试使用两个不同的图像,即两个不同的路径,但是imageview不会更新任何一种方式。
public class ImagePanel extends UiPart<Region> {
private static final String FXML = "ImagePanel.fxml";
@FXML
private ImageView imageView;
public ImagePanel() {
super(FXML);
imageView.setImage(new Image("/assets/cache.png"));
}
public void refresh() {
imageView.setImage(new Image("/assets/cache2.png"));
}