У меня есть файл с именем 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"));
}