Ejemplo básico con Splash Screen

De ChuWiki
Revisión del 14:15 27 dic 2008 de Chudiang (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
Saltar a: navegación, buscar

¿Qué es una Splash Screen?

A veces nuestra aplicación java puede ser muy grande y necesitar cargar muchas cosas en el arranque. Esto hace que desde que la arrancamos hasta que vemos algo, pase un tiempo en el que no vemos nada.

Una Splash Screen es una imagen que se muestra en pantalla, normalmente centrada, mientras esperamos que la aplicación arranque. De esta forma, nada más dar arrancar a la aplicación, ya vemos algo en pantalla y sabemos que la aplicación está arrancando. En cuanto aparezca la primera ventana real de nuestra aplicación, esta Splahs Screen desaparece.


Soporte para Splash Screen de java

Java, a partir de la versión 1.6, da soporte para las Splash Screen. Basta con indicar la imagen que queremos que se muestre en el arranque de la aplicación y se mostrará centrada automáticamente, hasta que aparezca la primera ventana de nuestra aplicación.

Podemos indicar una imagen gif, png o jpeg. Las primera soporta una imagen animada, mientras que tanto con gif como png podemos hacer transparencias.


Mostrar la Splash Screen desde línea de comandos

Si arrancamos la aplicación java con un comando de nuestra ventana de ms-dos o shell de linux, basta con poner la siguiente opción

java -splash:fichero.gif ....

De esta forma, lo primero que hará java es mostrar la splash screen con el fichero.gif, incluso antes de que arranque la máquina virtual, hasta que aparezca nuestra primera ventana de aplicación. En ese momento la ocultará automáticamente.


Mostrar la Splash Screen cuando nuestra aplicación es un fichero jar

Si tenemos nuestra aplicación empaquetada en un fichero jar, podemos arrancar la Splash Screen indicándolo en el fichero de manifiesto. Basta añadir una línea que tenga

SplashScreen-Image: fichero.gif

Por supuesto, la imagen debemos guardarla dentro del fichero jar.