我是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"/>