计时器更新是否正确且谨慎?

时间:2017-08-31 20:58:00

标签: javafx javafx-8

我是Javafx的新手,我正在尝试创建一个Timer。 我创建了一个简单的按钮和标签。 点击按钮,会通知startTimer事件,标签将开始显示计数器

定时器是否精确?

最好在事件功能中使用创建任务和TimerTask,还是这个也好?

Controller.java -

package sample;

import javafx.application.Platform;

import javafx.fxml.FXML;

import javafx.scene.control.Label;

import java.util.Timer;

import java.util.TimerTask;


public class Controller {

    @FXML

    private Label timerLabel;

    int secondsPassed = 0;

    Timer timer;

    TimerTask timerTask;
    public void initialize() {
        timer = new Timer();
        timerTask = new TimerTask() {
            @Override
            public void run() {
                Platform.runLater(new Runnable() {
                    @Override
                    public void run() {
                        secondsPassed++;
                       timerLabel.setText(String.valueOf(secondsPassed));
                    }
                });
            }
        };

    }

    public void startTimer() {
        timer.scheduleAtFixedRate(timerTask, 1000, 1000);
    }
}

sample.fxml-

<Button text="Start" onAction="#startTimer" GridPane.rowIndex="0"/>

<Label fx:id="timerLabel" text="0" alignment="CENTER" GridPane.rowIndex="1" style="-fx-text-alignment: center" prefWidth="50"/>

0 个答案:

没有答案