覆盖显示的文件后刷新JavaFX imageview吗?

时间:2019-03-02 14:02:42

标签: java javafx

我有一个名为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"));
}

0 个答案:

没有答案