Saltar al contenido

Hora y fecha de JavaFX Live

Andrea, miembro de nuestro staff, nos ha hecho el favor de crear este artículo ya que conoce perfectamente dicho tema.

Solución:

Creo que necesitas FX UI Thread Platform.runLater(...) para eso, pero puedes hacer algo como esto usando Timeline en tu clase de controlador,

@FXML
public void initialize() 

    Timeline clock = new Timeline(new KeyFrame(Duration.ZERO, e ->         
        LocalTime currentTime = LocalTime.now();
        time.setText(currentTime.getHour() + ":" + currentTime.getMinute() + ":" + currentTime.getSecond());
    ),
         new KeyFrame(Duration.seconds(1))
    );
    clock.setCycleCount(Animation.INDEFINITE);
    clock.play();

La respuesta de @Shekhar Rai funciona bien, pero aquí hay una versión más corta que también funciona bastante bien.

@FXML
Label dateTime;

@Override
public void initialize(URL location, ResourceBundle resources) 
    initClock();


private void initClock() 

    Timeline clock = new Timeline(new KeyFrame(Duration.ZERO, e -> 
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
        dateTime.setText(LocalDateTime.now().format(formatter));
    ), new KeyFrame(Duration.seconds(1)));
    clock.setCycleCount(Animation.INDEFINITE);
    clock.play();

La principal ventaja es que no tienes que definir todas las variables (segundos, minutos, …)

Eres capaz de añadir valor a nuestro contenido informacional colaborando tu experiencia en las ilustraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *