Обновление изображения JavaFX после перезаписи отображаемого файла? - PullRequest
0 голосов
/ 02 марта 2019

У меня есть файл с именем 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, чтобы вручную перекрасить узел, чтобы можно было отобразить новое изображение?Я попытался использовать два разных изображения, т.е. два разных пути, но просмотр изображений не обновляется ни в коем случае.

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"));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...