Ошибка в том, что вы не можете привязать ReadOnlyStringProperty
к ObjectProperty<Image>
.
Вы должны добавить прослушиватель изменений ( docs ) в свойство сообщения задачи ( docs ) и создать изображение, которое затем примените к представлению изображения:
public void monitor() {
task1 = new Task<Void>() {
@Override
protected Void call() {
System.out.println("run called");
int i = 1;
while (true) {
try {
Thread.sleep(1000);
updateMessage(i + ".png");
System.out.println("i: " + i);
} catch (Exception e) {
}
i++;
}
}
};
task1.messageProperty().addListener((observable, oldValue, newValue) -> {
System.out.println(newValue);
Image image = new Image(getClass().getResourceAsStream("images/" + newValue));
imv.setImage(image);
});
}
EDIT:
ChangeListener
представлено этим лямбда-выражением в данном фрагменте. Пожалуйста, прочитайте предоставленные документы для получения дополнительной информации.