您好我有这个代码用javafx显示图像
public void CantaCarta() throws InterruptedException {
startGame.setDisable(true);
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
SwingUtilities.invokeLater(() -> {
for (int x=1; x<55;x++){
Image image = new Image(getClass().getResource("imgs/"+JuegoLoto.Muestra(x-1)+".jpg").toString(), true);
cantada.setImage(image);
if (x >= 54) {
System.out.print("Termina");
timer.cancel();
} else {
System.out.print(" "+x+" ");
try {
Thread.sleep(200);
} catch (InterruptedException ex) {
}
}
}
});
}
}, 0, 1000);
}
图像将正确显示,但当图像编号54在屏幕中时,它将在循环中返回1,因为这个
Thread.sleep(200);
我该如何解决这个问题?我想延迟图像之间的时间
答案 0 :(得分:1)
这并没有意义。
所以你会得到:
因此,你可以完成大约10个或11个迭代的任务,主要是并行。
我建议你:
以 200ms 为间隔安排任务,让它在每次调用时显示下一个连续图像,包裹到开头或取消计时器或任何你想要的时间到最后一张图片,
摆脱内部循环。