每1秒给图像一个新的X和Y位置

时间:2016-04-09 10:39:31

标签: java javafx

我正在尝试更改图像LayoutX和LayoutY位置1秒。但我找不到适合此的任何(计时器)方法。我正在寻找类似于JavaScript" setInterval"这只是让我创建一个"计时器周期"使用Java或JavaFX。

任何建议都被广泛关注!

2 个答案:

答案 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应用程序线程上运行。