Splash screen Java FX

Posted by in Java, JavaFx, Tips

Para realizar una pantalla de carga en Java FX se pueden utilizar dos métodos:

  • Application con una Stage (y Scene asociada) que tras una cantidad de milisegundos arranca una nueva Stage con una Scene asociada
  • Application con una Stage (y Scene asociada) que es arrancada después de cargar un Preloader llamados desde el LauncherImpl.launchApplication()

Opción Application – Application

Se crea un fxml que muestra la interfaz gráfica que mostrará la pantalla de splash y la clase controladora que se asociará

Esta ventana es llamada desde el main

En esta clase se asocia la parte gráfica con la ventana (Stage) y se hace visible. En la clase controladora se crea un objeto de tipo fadetransaction que se asocia un nodo de la interfaz. Cuando termina el tiempo se crea una nueva Stage – Scene que se mostrará al mismo tiempo que la actual se oculta

Como se indica en el código anterior deberá de de haberse creado un archivo fxml y su controladora asociada que representa la pantalla que aparecerá tras la splash

Opción Application – Preloader

En esta opción se realiza la llamada a las clases application y preloader  desde la clase main directamente. Para ello desde la clase Main se utiliza el método LauncherImpl.launchApplication pasando como parámetros un objeto de tipo Application, un objeto de tipo preloader y los args del método main

Por separado se crean las clases de que extienden de Application

y de Preloader

En este caso el cambio de pantalla se realiza de forma automática. Si se quiere alargar la pantalla de Splash se debería de utilizar un objeto de tipo FadeTransaction tal y como se utilizó en el ejemplo anterior (en la controladora asociada)