I'm trying to update my JavaFX GUI after every 1 second using Task concuurency. I've icons 1.png
, 2.png
, 3.png
and so on. I'm using a while loop increments i++
. I want to display those icons after every 1 second. I don't know how to update Image. I'm using label.setGraphic()
method. I don't know how to use bind property here. I may be stark wrong. Please help me.
@Override
public void start() {
...
image = new Image(getClass().getResourceAsStream("images/1.png"));
imv=new ImageView(image);
label1 = new Label();
label1.setGraphic(imv);
monitor(); //A SEPARATE METHOD CONTAINING TASK CODE
...
new Thread(task1).start();
}
...
public void monitor() {
task1=new Task<Void>() {
@Override
protected Void call() {
int i=1;
while(true) {
try {
Thread.sleep(1000);
updateMessage(""+i+".png");
System.out.println("i: "+i);
}
catch(Exception e) {
}
i++;
}
}
};
label1.textProperty().bind(task1.messageProperty());
...
}