¿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 librería swing, un hilo o tarea, y un poco de código 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 más serio y completo. Es una buena forma de mejorar la experiencia de usuario.
La definiremos como clase principal del proyecto (Tal como se mencionó antes, esto se omite si usamos los entornos anteriores).
Por cuestiones de estética, 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 código en el constructor o mientras inicializás los componentes. Puedes notar como se la agregó en el código publicado anteriormente.
Una vez que tengamos definido todo el diseño de la ventana, solo necesitaremos definir un poco de código que cree un hilo de procesador para realizar la ejecución de la ventana, que espere un poco de tiempo y la cierre.
Como habrás notado, en el código anterior, hace falta un código de inicialización. Aquel código incluirá un hilo de procesador encargado de ejecutar el código de la clase paralelamente al código principal, lo que evita que se congele el programa.
Vale mencionar que estas ventanas son meramente decorativas, aunque siempre puedes modificarlas a tu gusto con un poco de lenguaje más avanzado.
Una vez que hayan pasado los segundos definidos por ti, el siguiente código:
Se encargará de cerrar el JFrame, debajo de él harás lo que desees que pase. En general desearás instanciar una nueva clase y mostrarla.
Usando la librería swing, un hilo o tarea, y un poco de código 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 más serio y completo. Es una buena forma de mejorar la experiencia de usuario.
Requisitos:
Primeramente este tutorial no te enseñará como utilizar Swing para crear ventanas, simplemente se menciona el diseño como referencia. Por ello como único requisito es indispensable que sepas diseñar interfaces usando este framework, o también puedes usar simples herramientas como el diseñador 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 más adaptable), este paso puede ser omitido si usamos un IDE como Netbeans o Eclipse que diseñan las ventanas por nosotros.
Por propóstitos del ejemplo diseñaremos una ventana bien sencilla, elemental y fea con el siguiente código, pero ahí tendrás la idea de como hacerla.
package ventanabienvenida; import javax.swing.JFrame; import javax.swing.JLabel; public class VentanaBienvenida extends JFrame { //Constructor public VentanaBienvenida() { dibujarVentana(); } //Código de inicialización 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 estética, 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 código en el constructor o mientras inicializás los componentes. Puedes notar como se la agregó en el código publicado anteriormente.
this.setUndecorated (true);
Una vez que tengamos definido todo el diseño de la ventana, solo necesitaremos definir un poco de código que cree un hilo de procesador para realizar la ejecución de la ventana, que espere un poco de tiempo y la cierre.
Como habrás notado, en el código anterior, hace falta un código de inicialización. Aquel código incluirá un hilo de procesador encargado de ejecutar el código de la clase paralelamente al código principal, lo que evita que se congele el programa.
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 número definido de segundos Thread.sleep(segundos * 1000); } catch (Exception e) { e.printStackTrace(); } ventanabienvenida.dispose(); } }; //Se corre la tarea Thread tarea = new Thread(ejecutable); tarea.start();
Vale mencionar que estas ventanas son meramente decorativas, aunque siempre puedes modificarlas a tu gusto con un poco de lenguaje más avanzado.
Una vez que hayan pasado los segundos definidos por ti, el siguiente código:
ventanabienvenida.dispose();
Se encargará de cerrar el JFrame, debajo de él harás lo que desees que pase. En general desearás instanciar una nueva clase y mostrarla.
Publicar un comentario