Sei sulla pagina 1di 4

Crear una ventana splash (de bienvenida) en Java

Has visto las famosas y muy usadas splash-screens que utilizan muchos programas al momento de iniciarse para darte la bienvenida? Si te parecen llamativas es muy sencillo realizarlas.

Usando la librera swing, un hilo o tarea, y un poco de cdigo podemos tener nuestra ventana de bienvenida o de cargando en pocos segundos. Las ventanas de este tipo son famosas por proveer un interesante forma de interactuar con el usuario.

Programas como Photoshop, Power Point, algunos juegos, etc. Las presentan y hacen ver a nuestro programa ms serio y completo. Es una buena forma de mejorar la experiencia de usuario.

Requisitos:

Primeramente este tutorial no te ensear como utilizar Swing para crear ventanas, simplemente se menciona el diseo como referencia. Por ello como nico requisito es indispensable que sepas disear interfaces usando este framework, o tambin puedes usar simples herramientas como el diseador de Netbeans o Eclipse para crearlas. Eso depende de ti.

Pasos:

Crearemos una clase que extienda a JFrame o JPanel (se recomienda el primero, al ser ms adaptable), este paso puede ser omitido si usamos un IDE como Netbeans o Eclipse que disean las ventanas por nosotros.

Por propstitos del ejemplo disearemos una ventana bien sencilla, elemental y fea con el siguiente cdigo, pero ah tendrs la idea de como hacerla.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

package ventanabienvenida; import javax.swing.JFrame; import javax.swing.JLabel; public class VentanaBienvenida extends JFrame { //Constructor public VentanaBienvenida() { dibujarVentana(); } //Cdigo de inicializacin private void dibujarVentana() { this.setSize(200, 200); this.setTitle("Bienvenido"); this.setUndecorated(true); this.setLocation(300, 300); JLabel linea = new JLabel("CARGANDO..."); this.add(linea); } }

La definiremos como clase principal del proyecto (Tal como se mencion antes, esto se omite si usamos los entornos anteriores). Por cuestiones de esttica, es bueno que la ventana no sea decorada. Ello permite eliminar el marco con botones de maximizar, salir y minimizar. Para ello puedes colocar

el siguiente cdigo en el constructor o mientras inicializas los componentes. Puedes notar como se la agreg en el cdigo publicado anteriormente.

1 this.setUndecorated (true);

Una vez que tengamos definido todo el diseo de la ventana, solo necesitaremos definir un poco de cdigo que cree un hilo de procesador para realizar la ejecucin de la ventana, que espere un poco de tiempo y la cierre.

Como habrs notado, en el cdigo anterior, hace falta un cdigo de inicializacin. Aquel cdigo incluir un hilo de procesador encargado de ejecutar el cdigo de la clase paralelamente al cdigo principal, lo que evita que se congele el programa.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

public static void main(String[] args) { //Se crea un ejecutable Runnable ejecutable = new Runnable() { public void run() { //Se instancia la ventana VentanaBienvenida ventanabienvenida = new VentanaBienvenida(); //Se muestra la ventana ventanabienvenida.setVisible(true); try { //Se espera el nmero definido de segundos Thread.sleep(segundos * 1000); } catch (Exception e) { e.printStackTrace(); } ventanabienvenida.dispose(); } };

31 //Se corre la tarea 32 Thread tarea = new Thread(ejecutable); 33 tarea.start();

Vale mencionar que estas ventanas son mramente decorativas, aunque siempre puedes modificarlas a tu gusto con un poco de lenguaje ms avanzado.

Una vez que hayan pasado los segundos definidos por ti, el siguiente cdigo:

1 ventanabienvenida.dispose();

Se encargar de cerrar el JFrame, debajo de l hars lo que desees que pase. En general desears instanciar una nueva clase y mostrarla.

Esperamos que con tu habilidad logres desarrollar una ventana ms atractiva.

Potrebbero piacerti anche