我怎么知道AnimationTimer是否正在运行?

时间:2016-11-26 07:39:06

标签: animation javafx timer

有没有办法知道AnimationTimer是否正在运行?我想像这样切换一个暂停菜单:

setOnKeyTyped(event -> {
  switch (event.getCode()) {
    case SPACE:
      if (animationTimer.isRunning()) { // What should I put here?
        animationTimer.stop();
      }
      else {
        animationTimer.start();
      }
      break;

    default:
      break;
  }
}

1 个答案:

答案 0 :(得分:3)

您可以覆盖startstop以保留有关计时器是否正在运行的信息:

class StatusTimer extends AnimationTimer {

    private volatile boolean running;

    @Override
    public void start() {
         super.start();
         running = true;
    }

    @Override
    public void stop() {
        super.stop();
        running = false;
    }

    public boolean isRunning() {
        return running;
    }

    ...

}

如果没有访问AnimationTimer的私人成员,似乎没有别的办法。