¿Cómo funciona el hilo de la aplicación JavaFX?

Tengo un problema con el subproceso de la aplicación Java FX. Aquí hay un pseudo-código:

showMenu(); //Contoller which waits for action(pressing button)... showLoadingPic(); Thread.sleep(2000); showMap(); 

El problema es que la suspensión ocurre en la ventana que se muestra en showMenu (), showLoadingPic () no se muestra en absoluto, y en la ventana final en showMap () se muestra.

La escena en showLoadingPic tiene una barra de progreso que se ejecuta 2 segundos, que es el mismo tiempo que Thread.sleep (2000).

Así que parece que los bloques de subprocesos de la aplicación javafx showLoadingPic () y showLoadingPic () se ejecutan en segundo plano.

¿Alguien puede ayudarme a arreglar esto?

¡Gracias de antemano!

    Hay un subproceso de despacho de eventos de Java FX, que maneja todas las tareas relacionadas con la GUI. Debe actualizar todos los componentes de la interfaz de usuario en este hilo. Las tareas de ejecución prolongada, como Thread.sleep , nunca deberían ejecutarse en este hilo, ya que Windows se bloqueará y la GUI se congelará .

    Ejecute todo su código en el hilo principal de la aplicación y realice solo tareas de GUI en el hilo JavaFX, llamando a Platform.runLater .

    Referencias sobre este tema:

    • Concurrencia en JavaFX , desde Oracle
    • Pregunta relacionada