Vous êtes sur la page 1sur 3

CREAR UN SPLASH SCREEN

Hola amigos amadores de la programación en Java, en esta oportunidad


quiero compartir con ustedes la manera sencilla de hacer un splash
screen. ¿Que es eso? se preguntaran, bueno un Splash Screen es una
Ventana de Bienvenida a nuestra Aplicación, esta ventana no tiene los
controles clásicos de cerrar, maximizar y minimizar, además se le puede
incluir una barra de progreso para mostrarse mientras carga en
memoria nuestra Aplicación.

En este ejemplo Mi Aplicación se trata de un "Software para la teoría


de Grafos".

A continuación les dejo con el Código espero que les sea de utilidad para
mejorar la presentación de sus entregables.
package GUIs;

import java.awt.*;
import javax.swing.*;

public class VentanaSplash {


//Componente en donde colocamos la Imagen Splash
private JLabel splashLabel;
//Progreso de Barra
private JProgressBar progreso;
//Ventana del SPlash
private JWindow splashScreen;

//Ventana de Trabajo
private VentPrincipal ventana;

public VentanaSplash()
{
crearSplashScreen();
// arrancar el splash
splashScreen.setVisible(true);

//iniciar progreso
hiloProgreso hilo=new hiloProgreso();
hilo.start();

//Crear Ventana de Trabajo


ventana=new VentPrincipal();
// mostrar cuando termine de cargar en memoria
ventana.setVisible(true);
//cerrar el Splash
splashScreen.setVisible(false);

//liberar Splash de memoria


splashScreen=null;
hilo=null;
}

public void crearSplashScreen()


{
//dimension del escritorio
Dimension screenRect =Toolkit.getDefaultToolkit().getScreenSize();
//Inicializa "splashLabel" con la ruta de la Imagen Splash
splashLabel=new JLabel(new ImageIcon("images/splash2.jpg"));
//Inicializa el Progreso
progreso=new JProgressBar();
progreso.setBorderPainted(true);
progreso.setForeground(new Color(50,50,153,100));
// Mostrar el valor de avance
progreso.setStringPainted(true);
splashScreen = new JWindow();

//Posiciona Aprox. en el Centro del Escritorio


splashScreen.setLocation(screenRect.width/4+30,screenRect.height/4);
splashScreen.setLayout(new BorderLayout());
splashScreen.add(splashLabel,BorderLayout.CENTER);
splashScreen.add(progreso,BorderLayout.SOUTH);
//empaqueta todo
splashScreen.pack();
}

public void pausa(int mlSeg)


{
try{// pausa para el splash
Thread.sleep(mlSeg);
}catch(Exception e){}
}

//Hilo del Progreso


class hiloProgreso extends Thread
{
public hiloProgreso()
{
super();
}
public void run()
{
for(int i=1;i<=100;i++)
{
progreso.setValue(i);
pausa(5);
}
}

public static void main(String[] args)


{
//JFrame.setDefaultLookAndFeelDecorated(false);
new VentanaSplash();
}
}

Vous aimerez peut-être aussi