package settlers;
import java.text.SimpleDateFormat;
import java.util.Date;
import javafx.animation.KeyFrame;
import javafx.animation.Timeline;
import javafx.event.ActionEvent;
import javafx.scene.paint.Color;
import javafx.scene.text.Font;
import javafx.util.Duration;
public final class Clock extends javafx.scene.control.Label {
private final SimpleDateFormat SIMPLE_DATE_FORMAT;
private final double SCREEN_WIDTH = javafx.stage.Screen.getPrimary().getVisualBounds().getWidth();
public Clock(String type, int right_edge, int y, int width, int height) {
setTextFill(Color.BLUE);
setLayoutX(SCREEN_WIDTH - right_edge);
setLayoutY(y);
setPrefSize(width, height);
setFont(Font.font("Arial", 15));
switch (type) {
case "date":
SIMPLE_DATE_FORMAT = new SimpleDateFormat("dd. MM. yyyy");
break;
case "time":
SIMPLE_DATE_FORMAT = new SimpleDateFormat("hh:mm:ss a");
setFont(Font.font(40));
break;
default:
SIMPLE_DATE_FORMAT = new SimpleDateFormat("EEEE");
}
Timeline timer = new Timeline(new KeyFrame(Duration.millis(250), (ActionEvent event) -> {
setText(SIMPLE_DATE_FORMAT.format(new Date()));
}));
timer.setCycleCount(Timeline.INDEFINITE);
timer.play();
}
}
Trochu jsem ten kód zjednodušil a timer nastavil na 250ms - Doufám, že jsi spokojený.