当前位置: 首页 > 知识库问答 >
问题:

Javafx时间线获取当前周期时间

柯瀚海
2023-03-14
Timeline timeline = new Timeline();
    timeline = new Timeline(new KeyFrame(Duration.ZERO, new EventHandler<ActionEvent>() {
        @Override
        public void handle(ActionEvent actionEvent) {
            System.out.println("Counting");
            //myFunction(currentCycleStep) <------
        }
    }), new KeyFrame(Duration.seconds(SimulationController.speed)));


    timeline.setCycleCount(5);
    timeline.play();

共有1个答案

孔安阳
2023-03-14

我认为没有直接的方法从一个时间线得到实际的周期。

你可以为此写你自己的财产。下面是一个示例,它监视currentTime,并在每次更改“方向”时增加我们自创建的属性的值。

示例:

currentTime: 1s
currentTime: 2s
currentTime: 3s
currentTime: 0s  <--------- increment actual cycle
currentTime: 1s
currentTime: 1s
currentTime: 2s
currentTime: 3s
currentTime: 2s  <--------- increment actual cycle
currentTime: 1s
@Override
public void start(Stage primaryStage) throws Exception {
    SimpleStringProperty testProperty = new SimpleStringProperty();
    Timeline timeline = new Timeline(new KeyFrame(Duration.millis(1000), new KeyValue(testProperty, "1234")));
    timeline.setCycleCount(Timeline.INDEFINITE);

    // ----------------------------------------------------------------------
    // we create our own property for the actual cycle-index
    // ----------------------------------------------------------------------
    SimpleIntegerProperty actualCycleProperty = new SimpleIntegerProperty(0);
    timeline.currentTimeProperty().addListener((observable, oldValue, newValue) -> {
        boolean smaller = newValue.toMillis() < oldValue.toMillis();
        boolean evenCycleCount = actualCycleProperty.get() % 2 == 0;
        if ((timeline.isAutoReverse() && !evenCycleCount && !smaller)
                || ((evenCycleCount || !timeline.isAutoReverse()) && smaller)) {
            actualCycleProperty.set(actualCycleProperty.get() + 1);
        }
    });

    actualCycleProperty.addListener((observable, oldValue, newValue) -> {
        System.out.println(newValue);
    });
    timeline.play();
}
 类似资料:
  • 问题内容: 刚从操场开始。我正在尝试创建一个简单的应用程序。 我创建了一个这样的日期对象: 我如何获得当前时间?在其他语言中,我可以执行以下操作: 但是我找不到像这样的任何属性/方法。我找到了一种方法。我应该用那个吗?如果是这样,怎么办? 问题答案: Swift 3更新: 我这样做: 在Objective-c中看到相同的问题,如何从NSDate获得小时和分钟?与Nate的答案相比,您将获得一个数字

  • 问题内容: 如何使用Java获取当前日期和时间? 我正在寻找与C#等效的东西。 问题答案: 只需构造一个没有任何参数的新对象即可;这会将当前日期和时间分配给新对象。 在的话的Javadoc的无参数的构造函数: 分配一个Date对象并对其进行 初始化,以便它表示分配它的时间( 以最近的毫秒为单位)。 确保您使用的不是-后者没有零参数构造函数,并且语义有所不同,这是完全不同的对话的主题。:)

  • 我有一个用JavaScript打印当前日期和时间的脚本,但是总是错误的。代码如下: 它应该打印并打印

  • 问题内容: 我在获取24小时制的当前时间时遇到问题。据我所知,“ HH”应代表24小时制的当前小时,但是由于某种原因,“ HH”根本没有被解释。这就是为什么以下代码行输出类似 “ HH:50:06 Uhr,Sep. Sep.”的原因。 : 有什么想法我做错了吗?但是,使用“ hh”有效,这将以12小时制输出时间,这不是我想要的。 帮助表示赞赏! 问题答案: 您可以使用SimpleDateForma

  • 我想做一个考勤应用程序,我真的很困惑iOS和Firebase中的日期和时间。

  • 问题内容: 我有一个可在JavaScript中显示当前日期和时间的脚本,但这始终是错误的。这是代码: 它应该打印并打印 有什么帮助吗?谢谢 问题答案: 返回一个从零开始的数字,以便获得正确的月份,您需要将其加1,因此调用in可能会返回而不是。 因此,在您的代码中,我们可以用来输出正确的值。此外: 返回月中的某天 < -这是您想要的*那一天 * 是对象的单独方法,它将返回代表星期几(0-6)等的整数