我正在尝试更改图像LayoutX和LayoutY位置1秒。但我找不到适合此的任何(计时器)方法。我正在寻找类似于JavaScript" setInterval"这只是让我创建一个"计时器周期"使用Java或JavaFX。
任何建议都被广泛关注!
答案 0 :(得分:3)
使用java.util.Timer
,您可以安排此类任务。
方法timer.schedule()
仅执行任务。重复你的任务
使用方法timer.scheduleAtFixedRate()
。
Timer timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
System.out.println("hello");
}
}, 1000, 1000);
scheduleAtFixedRate()
的第二个参数是第一次执行前的延迟(以毫秒为单位),最后一个参数是执行任务之间的间隔(以毫秒为单位)。
答案 1 :(得分:1)
为此,您可以使用Timeline
INDEFINITE
周期计数。
示例:
Timeline tl = new Timeline(new KeyFrame(Duration.seconds(1), evt -> {
// toggle image postion
imageView.setLayoutX(200 - imageView.getLayoutX());
imageView.setLayoutY(200 - imageView.getLayoutY());
}));
tl.setCycleCount(Animation.INDEFINITE);
tl.play();
这保证事件处理程序在JavaFX应用程序线程上运行。