JavaFX1.8中的计时器(时钟)

JavaFX1.8中的计时器(时钟),java,javafx,Java,Javafx,我试图在使用JavaFX(IDE:NetBeans)和OS(Win10)开发的屏幕录制应用程序中添加一个计时器。我现在添加一个计时器,用作: 用户单击开始录制,我的应用程序上的标签应该开始显示时间为00:00:00,我的时间以秒为单位打印在控制台上,但当我使用它在应用程序上显示时,它只显示0秒。我附加代码了。请帮忙。当我有值时,我如何刷新应用程序界面或运行计时器,它只是不更新 在这里你可以看到我的应用程序没有启动计时器;但是,正在控制台上打印 您可以使用javafx.animation.Anim

我试图在使用JavaFX(IDE:NetBeans)和OS(Win10)开发的屏幕录制应用程序中添加一个计时器。我现在添加一个计时器,用作:

用户单击开始录制,我的应用程序上的标签应该开始显示时间为00:00:00,我的时间以秒为单位打印在控制台上,但当我使用它在应用程序上显示时,它只显示0秒。我附加代码了。请帮忙。当我有值时,我如何刷新应用程序界面或运行计时器,它只是不更新

在这里你可以看到我的应用程序没有启动计时器;但是,正在控制台上打印


您可以使用javafx.animation.AnimationTimer中的AnimationTimer,此计时器的handle'方法将在每一帧调用。

lambda表达式在-source 1.7中不受支持(使用-source 8或更高版本来启用lambda表达式)明白了吗?而不是7…它是必需的,否则,我会让OK这样做:
Platform.runLater(new Runnable(){@Override public void run(){timer.setText(“+countTask.timeInSec+”s”);})什么是平台?我需要进口什么东西?它只在平台上给出错误。它已经开始运行了,但你们能告诉我为什么它是实际时间的2倍吗?我可以在哪里设置FPS或其他什么?如果我录8秒,是17秒seconds@AtifAzizFPS应该不重要。
AniamtionTimer#handle(long)
方法的单个参数是帧的时间戳(以纳秒为单位)。如果您跟踪上一个时间戳并将其从当前时间戳中减去,则两帧之间的时间(以纳秒为单位)。
    private void scheduleTimerTasks() {
        isRecording = true;
        int delay =50; 
        long period = 500;
                //1000 / 48;
        RecordTimer.reset();
        timerRecord = new Timer("Thread TimerRecord");
        timerCount = new Timer("Thread TimerCount");
        recorderTask = new ScreenRecorderTask(encoder, rectangle);
        countTask = new TimerCountTask(Timer);
        timerRecord.scheduleAtFixedRate(recorderTask, delay, period);
        timerCount.scheduleAtFixedRate(countTask, delay, period);
        Timer.setText(""+countTask.timeInSec+" s"); //Setting Label Text
        System.out.println(countTask.timeInSec);
        recordStateLabel.setText("recorder Started...");
    }