Tak už jsem na to došel.
package settlers_javafx;
import java.text.SimpleDateFormat;
import java.util.Date;
import javafx.animation.Timeline;
import javafx.geometry.Pos;
import javafx.scene.text.Font;
public final class Clock extends javafx.scene.control.Label {
private final SimpleDateFormat SIMPLE_DATE_FORMAT;
public Clock(String type, int x, int y, int width, int height) {
setTextFill(javafx.scene.paint.Color.BLUE);
setLayoutX(x);
setLayoutY(y);
setPrefSize(width, height);
switch (type) {
case "date":
SIMPLE_DATE_FORMAT = new SimpleDateFormat(" MMMM dd yyyy");
setFont(new Font("sans-serif", 12));
setAlignment(Pos.CENTER_LEFT);
break;
case "time":
SIMPLE_DATE_FORMAT = new SimpleDateFormat("hh:mm:ss a");
setFont(new Font("sans-serif", 40));
setAlignment(Pos.CENTER);
break;
case "day":
SIMPLE_DATE_FORMAT = new SimpleDateFormat("EEEE ");
setFont(new Font("sans-serif", 16));
setAlignment(Pos.CENTER_RIGHT);
break;
default:
SIMPLE_DATE_FORMAT = new SimpleDateFormat();
}
Timeline timer = new Timeline(new javafx.animation.KeyFrame(javafx.util.Duration.seconds(1), (javafx.event.ActionEvent event) -> {
Date d = new Date();
setText(SIMPLE_DATE_FORMAT.format(d));
}));
timer.setCycleCount(Timeline.INDEFINITE);
timer.play();
}
}