Home | Java |C # |SQL |Manuales |Videos |


62

Ventana splash con NetBeans

image Una ventana splash es una ventana de presentación ; sin los botones clásicos y que va a servir para darle una mejor presentación a nuestro proyecto.

Esta ventana se debe colocar al principio de nuestra aplicación; para empezar debemos diseñar la que será nuestra imagen de presentación la cual por motivos de tiempo elegí la de NetBeans ; y a esta le vamos a agregar una barra de progreso :

  1. Abrimos el NetBeans y creamos un nuevo proyecto , el cual lo desmarcamos para que no cree la clase main :image
  2. Creamos el folder en donde irá nuestra imagen; para ello clic derecho en Source Package → New → Other por lo que saldrá una ventana en la cual debemos elegir  Other → Folder   y finalmente le damos el nombre que queramos :imageimage
  3. Ahora creamos un paquete Splash en el cual vamos a agregar un JFrame y también creamos una clase para el hilo que vamos a usar , por lo que les debe quedar así :  image
  4. Vamos a trabajar en nuestro Frame, al cual le hacemos clic derecho → SetLayout y le damos BorderLayout hecho esto colocamos dos paneles : uno en el sur y otro en el centro (seguir el orden para no tener complicaciones). Después de haber agregado los paneles a cada uno le vamos a dar BorderLayout al igual que al frame. Hecho esto vamos a colocar en el panel del sur un JProgressBar al que le vamos a llamar progreso y en el panel central una etiqueta; nos debe quedar así :image
  5. Para cambiar el nombre del JProgresBar podemos darle clic derecho a la barra y elegimos “Change Variable name” a continuación nos saldrá la siguiente ventana en la cual debemos colocar el nombre de la barra :image
  6. En el panel central vamos a colocar una etiqueta al cual le vamos  a colocar una imagen, ver esta entrada para ver como ccolocar una imagen : image
  7. En el diseñador del JFrame nos vamos a agregar código , para ello hacemos clic en en boton source image ;  y ya en la clase del JFrame (al cual llame Principal) le agregamos un objeto Hilo :
    import java.awt.Color;

    public class Principal extends javax.swing.JFrame
    {
    HiloProgreso hilo;



  8. Vamos a el constructor y le agregamos el siguiente código :
        public Principal()
    {
    //Método por defecto
    initComponents();
    iniciarSplash();
    //Creamos un objeto HiloProgreso al cual
    //le pasamos por parámetro la barra de progreso
    hilo=new HiloProgreso(progreso);
    //Iniciamos el Hilo
    hilo.start();
    //Le damos tamaño y posición a nuestro Frame
    this.setLocation(200,200);
    this.setSize(472,249);
    //Liberamos recursos
    hilo=null;
    }



  9. Creamos un método get para nuestro JProgressBar , para ello o bien lo agregamos directamente o bien hacemos que el NetBeans lo genere , para ello clic derecho sobre el atributo → seleccionamos Refactor → Seleccionamos Encapsule Fields  y en la ventana que aparece simplemente seleccionamos los métodos set y get que deseamos que NetBeans genere imageimage


  10. Hecho esto aparecerá la siguiente línea de código :
        public javax.swing.JProgressBar getjProgressBar1() {
    return progreso;
    }



  11. Ahora si podemos crera nuestro método iniciar Splash :
        public void iniciarSplash() {
    this.getjProgressBar1().setBorderPainted(true);
    this.getjProgressBar1().setForeground(new Color(50, 50, 153, 100));
    this.getjProgressBar1().setStringPainted(true);
    }



  12. NetBeans nos debe estar marcando un error , esto se da porque aún no hemos creado nuestra clase HiloProgreso ; para ello clic en el paquete Splash → New → Java Class y a la clase le damos de nombre HiloProgreso y la vamos hacer que extienda de Thread ; en esta clase debemos crear una referencia a la barra de progreso que vamos a pasar por parámetros para lo cual declaramos un JProgressBar progreso :
    package Splash;

    import javax.swing.JProgressBar;

    public class HiloProgreso extends Thread
    {
    JProgressBar progreso;



  13. Ahora vamos a crear nuestro método constructor el cual va a tener como parámetros una barra de progreso1 , se debe observar como se da la relación de asociación ; es decir la referencia del objeto que pasó por parámetro la asigno a la referencia que cree anteriormente y con esto puedo usar todos sus métodos (el super es para llamar al método constructor de la clase Thread y por ley debe ser la primera línea en el método constructor de la clase hija) :
    public class HiloProgreso extends Thread
    {
    JProgressBar progreso;

    public HiloProgreso(JProgressBar progreso1)
    {
    super();
    this.progreso=progreso1;
    }



  14. Hecho esto vamos a crear el método run que va a servir para correr el hilo :
        public void run()
    {
    for(int i=1;i<=100;i++)
    {
    progreso.setValue(i);
    pausa(100);
    }
    }



  15. Y por último creamos nuestro método pausa , que como el nombre indica nos va a dar una pausa para que la barra de progreso no llegue al 100% n bien corramos la aplicación :
        public void pausa(int mlSeg)
    {
    try
    {
    // pausa para el splash
    Thread.sleep(mlSeg);
    }catch(Exception e){}
    }



  16. Hecho esto presionamos F6 y veremos algo como esto :image


  17. El ejemplo lo pueden descargar desde aquí :





btn_6



 



 



* Si el link de descarga no funciona, por favor ir a la sección de carpeta compartida que se encuentra a la derecha , esta les enviará directamente a mi carpeta compartida → en la carpeta compartida ir a Ejemplos → Ejemplos de Java  → Cap_18_NetBeans → Splash.



* Respecto a llamar una aplicación despues de terminado el splash les pediría tiempo para modificar la aplicación y que haga eso ( a mas tardar mañana lo estoy modificando)

62 Comentarios:

Anónimo dijo...

amigo esta interesante... pero una consulta, luego como hago para llamar despues q ya cargo 100% a otro formulario, me imagino q debe haber un codigo o un evento para saber cuando llegar al 100% hacer algo si me ayudas!! Gracias

Anónimo dijo...

muchas gracias pero ya descubri como hacerlo!!! estan chevrees todos tus post... me encanta la programacion!! bye

Anónimo dijo...

Hola muy bueno el ejemplo...pero como se hace "para llamar despues q ya cargo 100% a otro formulario" jeje a mi todavia no me sale....

Espero ayuda...
SALUDOS

sistemas0711 dijo...

Puedes llamar a otra ventana en el método constructor del frame principal :
public Principal() {
//Método por defecto
initComponents();
iniciarSplash();
//Creamos un objeto HiloProgreso al cual
//le pasamos por parámetro la barra de progreso
hilo = new HiloProgreso(progreso);
//Iniciamos el Hilo
hilo.start();
//Le damos tamaño y posición a nuestro Frame
this.setLocation(200, 200);
this.setSize(472, 249);
//Liberamos recursos
hilo = null;
//OCULTAR EL FRAME DEL SPLASH
//LLAMADA A LAS VENTANAS
}

Anónimo dijo...

Ok...Muchas Gracias x la ayuda!!! ya funciono, lo unico que estoy viendo es el tiempo de la pausa...con el valor 1 es con el que me tarda aprox 1seg y desaparece, a mayor numero mas rapido desaparece nose por que...probe con 100, con 5000 etc etc pero desaparece muy rapido...igual nuevamente gracias por la ayuda!
Saludos!

Anónimo dijo...

NO FUNCIONA EL LINK PARA DESCARGAR.

Anónimo dijo...

Grax salio bacan :D. Disculpen podria ayudarme para ponerlo como predeterminado en inicio de mi netbeans?? Saludos..

Anónimo dijo...

psylince@gmail.com

Hey intente crear el splash y la barra de progreso y me salen muchisimos errores..

Tengo una aplicacion que esta conectada a una base de datos y me gustaria agregarle el splash y la barra. Espero que me respondas y me ayudes.

Saludos

Anónimo dijo...

Por favor arregla el link de descarga.

Cuando le das clic este no hace nada.

Estaria bueno ver la aplicacion con todo su codigo para entenderlo mejor.

Anónimo dijo...

lince1120@hotmail.com

Hola muy buen tutorial, logre implementar la barra de progreso y el splash en mi apliacion, pero como podria hacerle para que al terminar de cargar la barra me mande llamar a otra ventana o jframe?

Lo intente en el metodo run con

Tablaa m = new Tablaa();
m.setVisible(true);

Pero no pasa nada..

Como le podria hacer?

Saludos

Anónimo dijo...

No funciona cuando haces el siguiente cambio:
//OCULTAR EL FRAME DEL SPLASH
//LLAMADA A LAS VENTANAS
no llama al siguiente frame aparecen los dos por fabor una solucion

Anónimo dijo...

juan_dalechaka@hotmail.com
es cierto io tambien kiero k al terminar de cargar se cierre el spach i abrir otro jframe pero no puede. como se ace.

Anónimo dijo...

he-berth@hotmail.com
Todos tienen razon no funciona aumentar al codigo
//OCULTAR EL FRAME DEL SPLASH
//LLAMADA A LAS VENTANAS
una solucion

Argiva Nero dijo...

Para mandar llamar a Otro Frame:
chequen este link que encontré:
http://richieblog.wordpress.com/2008/10/14/la-manera-mas-facil-de-crear-un-splash-en-java/
Espero les sirva.
Saludos!

Argiva Nero dijo...

Aum =), Lo siento, el otro link que les puse no maneja progress bar, pero hey ! ya pude llamar a otro frame con el código de aquí:

En HiloProgreso.java:

Afuera del "for", mandan llamar a su nueva ventana en mi caso se llama "About" (que aparecería después del splash):

public void run()
{
for(int i=1;i<=100;i++)
{
progreso.setValue(i);
pausa(100);
}

new About().setVisible(true); //aki va la llamada a su Frame que aparece después del splash


}

pero no se aún como cerrar el splash antes de abrir el frame nuevo :(. Espero alguien me pueda ayudar.

Anónimo dijo...

porfavor le pidos quiero saber como puedo desaparecer el cerrar minimizar y el maximizar solo quiero el splash porfa

Victor De Hoyos dijo...

vadt01@hotmail.com - vadt01@ingenieros.com
primero que todo excelente tutorial logre implementarlo satisfactoriamente, pues para amar otro frame en el metodo run pregunta fuera del for si progreso.getvalue() == 100 si esto se cumple podrias hacer algo como jfingresar jfi = new jfingresar();
jfi.show();
asi llamaras a otra ventana al terminar.
haa les comento lo probe con un look & feel muy buenos llamado NinRod pueden descargarlo
la forma de utilizarlo es lo importan al proyecto
luego esta es la estructura
public principal(){
try
{
UIManager.setLookAndFeel(new NimRODLookAndFeel()));
}
catch(Exception e) { }
initcomponents();
.
.
.
}
y se ve mucho mejor

Anónimo dijo...

hola miren tengo un problema en k el spalsh no se cierra al terminar de cargar si puedo hacer k el al cargar m abra otra ventana pero el spash se keda ahi aver si alguien m puede eshar la mano por fa-----

Unknown dijo...

Muchas garcias por tan valioso aporte. Será que es posible meter un archivo swf a un frame para que sea ese archivo de flash el splash de mi aplicación???

Si no, bueno, con el progresbar ya es mucho!!! gracias

Anónimo dijo...

Oe, pero siempre me aparece la ventana del frame, es decir, con las opciones de poder minimizarlo, maximizarlo y cerrarlo, y no tendría que ser asi...dame una sugerencia para eso...

sistemas0711 dijo...

Holas , si discullpa por np agregar esa parte en el post , lo voy a actualizar de todas maneras ....dale clic en el JFrame y entre las propiedades del JFrame hay una que se llama undecorated dale check a esa propiedad y verás que los botones van a desaparecer

Fajardo dijo...

Muchas Gracias, gracias a tu ejemplo entiendo bien como va lo de los hilos.

Me ha venido muy bien para un traductor que estaba haciendo.

Anónimo dijo...

La verdad, muchas gracoas si me ha servido y mucho diria yo XD

Alexis dijo...

graxx!

Anónimo dijo...

Hola muy buen aporte eh... si que es bueno...pero como hago para cerrar el Splash para poder trabajar con el nuevo frame abierto porfa si me pueden dar una sugerencia

Anónimo dijo...

NU nAy ALgUien K nUS ayuDE...trato pero no peudo sacar el Splash !!! :(

Anónimo dijo...

interesante la aplicacion lastima que no se puede descargar :(

sistemas0711 dijo...

Hola en la última parte del post indio que si el link no funciona puesen la parte deredcha del blog hay una seccion que se llama carpeta compartida ,dale clic allí y te enviará a mi skydrive , entra en la carpeta de ejemplos → ejemplos java → netbeans y podrás descargar el ejemplo

Anónimo dijo...

como puedo hacer una ventana o pantalla en netbeans desde cero sin usa jframe a partir de coordenada, class punto, class pantalla etc.
EMAIL-hamasaki@live.com.mx

Manuel dijo...

bueno ahora ya se como enlazar la ventana splash pero no se como cerrarla despues q la otra ventana aparesca en pantalla ...

Anónimo dijo...

muy bonito, pero que utilidad tiene?, la barra de progreso, carga los demás frames del programa? ademas ninguna IGU debería iniciarse de esa forma, hay que usar Runnable

Yuan007 dijo...

Bueno para cerrar el Splash
hice lo siguiente
En el evento CHANGE -> stateChange del progressbar
if (BarraProgreso.getvalue()==100){
this.dispose()
//Aqui llamamos al JFrame que queremos que aparezca despues
new JFrame().setVisible(true);
}

Anónimo dijo...

donde se pone especificamente esa lineas de codigo para que el splash desaparesca al cargar 100 y solo quede el jframa que aparese despues

se agradese respuesta

Yuan007 dijo...

En el evento CHANGE -> stateChange del progressbar

Unknown dijo...

muy bueno el tuto compadre me sirvió para que mi proyecto quede más pro.
Para los que aún no les salga lo de cerrar el splash y que aparezca otro frame, lo hacen con un click derecho ensima de la progressbar en el modo diseño de su JFrame se van a change-> stateChange como decían mas arriba, eso generará y les direccionará al siguiente método:

private void progresoStateChanged(javax.swing.event.ChangeEvent evt) {

/* Y AKI PONEN EL IF PARA QUE HAGA LA SENTEWNCIA AL LLEGAR AL 100%*/

if (progreso.getValue()==100){
this.dispose();//CIERRA EL SPLASH
Base b=new Base();//ABRE OTRO JFRAME
}
}
SI NO ENTIENDEN EL MODO GRÁFICO QUE EXPLICO COPIEN Y PEGUEN EL CÓDIGO EN EL JFRAME DONDE TIENEN LA JPROGRESSBAR Y LISTO!!!

SALUDOS, SOY NUEVO POR ACA, PERO VENGO A KEDARME, ESPERO PODER APORTAR MUCHO YA QUE ESTUDIO INFORMÁTICA
MUY WENO EL BLOG....ADIOS

Anónimo dijo...

pero ahora como hago que despues de terminar el proceso del splash llamar un frame viaw, ayuda.

Anónimo dijo...

una duda alguien que ya lo halla echo ami ya mi duda es que al crear el .jar nomas carga el splash y nadamas ya logre mandar a llamar un jframe desde la consola jala bien pero al crear el .jar no funka no mas en el splash y yap saludos desde tapachula chiapas atte. Elguardian

Anónimo dijo...

Gracias comprade por tu aporte me sirvió de mucho....

Anónimo dijo...

package javaapp;

import java.awt.Color;

/**
*
* @author AngelJC
*/
public class Cargando extends javax.swing.JFrame {
Thread runer=new Thread(){
public void run()
{
for(int i=1;i<=100;i++)
{
progreso.setValue(i);
pausa(100);
}
llamarFrame();
}
};
public void llamarFrame()
{
Inicial in=new Inicial();
in.show();
this.dispose();
}
public void pausa(int mlSeg)
{
try
{
// pausa para el splash
Thread.sleep(mlSeg);
}catch(Exception e){}
}

/** Creates new form Cargando */
public Cargando() {
initComponents();
iniciarSplash();
this.setTitle("Cargando");
//Iniciamos el Hilo
runer.start();
//Le damos tamaño y posición a nuestro Frame
this.setLocation(200,200);
this.setSize(472,249);
//Liberamos recursos
runer=null;
}

public javax.swing.JProgressBar getjProgressBar1() {
return progreso;
}
public void iniciarSplash() {
this.getjProgressBar1().setBorderPainted(true);
this.getjProgressBar1().setForeground(new Color(50, 50, 153, 100));
this.getjProgressBar1().setStringPainted(true);
}
@SuppressWarnings("unchecked")
//
private void initComponents() {

progreso = new javax.swing.JProgressBar();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(progreso, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 400, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap(281, Short.MAX_VALUE)
.addComponent(progreso, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
);

pack();
}//

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Cargando().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JProgressBar progreso;
// End of variables declaration

}

Anónimo dijo...

Añadir:

private void progresoStateChanged(javax.swing.event.ChangeEvent evt) {
// TODO add your handling code here:
if (this.getjProgressBar1().getValue() == 100) {
this.dispose();
new Ventana_principal().setVisible(true);
}

}

Anónimo dijo...

Para que sea mas elegante añadir:

private void formWindowOpened(java.awt.event.WindowEvent evt) {
// TODO add your handling code here:
centrarVentana();
}

private void centrarVentana() {
// Se obtienen las dimensiones en pixels de la pantalla.
Dimension pantalla = Toolkit.getDefaultToolkit().getScreenSize();
// Se obtienen las dimensiones en pixels de la ventana.
Dimension ventana = getSize();
// Una cuenta para situar la ventana en el centro de la pantalla.
setLocation((pantalla.width - ventana.width) / 2,
(pantalla.height - ventana.height) / 2);
}

Tony dijo...

yo ya pude hacer que se cierre el splash y que abra el otro frame pero hay un pequeño detalle.
que no se si sea el hilo pero se vuelve a repetir y me vuelve a abrir el frame cada ves que termina los 100 puntos del sleep

Anónimo dijo...

Alguien puede ayudarme para que me abra mi ventana principal he intentado con:
private void progresoStateChanged(javax.swing.event.ChangeEvent evt) {

if (progreso.getValue()==100){
this.dispose();//CIERRA EL SPLASH
Base b=new Base();//ABRE OTRO JFRAME
}
}

Pero me sale error en --> this.dispose();
AYUDA URGENTE!!!

Anónimo dijo...

LO HE HECHO Y FUNCIANA AL100%

Anónimo dijo...

EXCELENTE APORTE YO REALICE EL SPLASH PERO NO PODIA CERRARLO, LO HE LOGRADO Y FUNCIONA AL 100% MI PROYECTO SE VE DE LUJO.... ATTE "ARVA "

Anónimo dijo...

1-Si el proyecto contiene un main como se puede hacer para que identifique que lo primero a realizar es el SPLASH?

2-Como se hace para sincronizar la barra de progresso con una tarea que quiera hacer al mismo tiempo?

Gracias!

Anónimo dijo...

Perfecto Tutorial y excelentes comentarios para ayudar a los novatos, como yo.
Fue de gran utilidad y me salio a la perfeccion.
Muchas Gracias.

Anónimo dijo...

Gracias super el tutorial me sirvio mucho :-)

JMCREdicionTOP dijo...

Amigos en verdad sirvio mucho:

Para que pueda aparecer una ventana despues del Splash es sencillo:

1.-Ir a modo diseño en el JFrame donde tengan la Barra
2.-Click Derecho a la Progress Bar
3.-Events -> Change -> stateChanged (Los enviara a modo codigo)
4.-Les aparecera lo siguiente:

private void progresoStateChanged(javax.swing.event.ChangeEvent evt) {

5.-Debajo tecleen lo Siguiente:

if (progreso.getValue()==100){
this.dispose(); //Esto cierra el Splash
MiVentana mv=new MiVentana(); //Esto llama otra Vent.
}

6.-Compilen y Ejecuten :)

Saludos espero les sirva

Sergio dijo...

Muchas gracias por el aporte me has quitado un monton de curro....

Anónimo dijo...

dale click derecho al progressbar y dale en eventos depues en change, dale un evento statechange y crea una condicion asi

if(progreso.getValue()== 100){
this.dispose();
Principal p = new Principal();
p.setVisible(true);
}

Anónimo dijo...

holaa hola me gusta pero necesito que alguien me ayude me dejaron un trabajo en netbeans donde tenga un frame principal y ahi tenga un usuario y una contraseña si son incorrectos me mande un mensaje de error y si son correctos me mande a otro frame en el cuan diga bienvenido y tenga 3 menu item el primero va hacer don de intridusca el Id, Nombre, Apellido,RFC, e-mail de un trabajador y cuando le de clic ahi me mande a un INTERNALJFRAME donde pueda introducir esos datos y los cuales yo tenga un boton con laopcion de guardar otro boton con la opcion de limpiar otro con la opcion salir y otro boton con la opcion de nuevo, cuando le de salir me mande denuevo a la pagina de bienvenida y el en cual eliga en el menu la opcion de desplegar trabajador cuando de clic me mande a un INTERNAL FRAME en el cual tenga las opciones de Id,nombre,apellido,RFC,e-mail y que tenga un boton con la opcion de mostrar cuando le de clic me muestre el registro que hice y si tengo varios que muestre el siguiente o el anterior plis necesito una gran ayudar si me puedes ayudar porfavor

Anónimo dijo...
Este comentario ha sido eliminado por un administrador del blog.
Anónimo dijo...

He comenzado en este nuevo mundo de la programacion en java y cada vez me fascina mas y eso es gacias a todos ustedes que enriquecen este Blog con sus preguntas y respuestas , muchas gracias a todos ustedes .....muy pronto empezare a aportar con los codigos que valla aprendiendo ...

Saludos..
Elmer Soto

Tuli dijo...

Una duda para cambiar el color de la barra de progreso como seria?

Anónimo dijo...

AL cargar el código en Change funciona =)

private void ProgresoStateChanged(javax.swing.event.ChangeEvent evt) {
if(Progreso.getValue()== 100){
this.dispose();
Menu_inicial p = new Menu_inicial();
p.setVisible(true);
}
}

hay que asegurarse que no esté implementado en la clase Hilo =)

Unknown dijo...

Hola, antes que nada es muy buena la explicacion, pero quisiera que antes de mi splash de carga, me aparezca una imagen, cuestion de 2 segundos... seria ese mi logo. Tengo entendido que es por timer. pero no se como se hace. AYUDA!?

Anónimo dijo...

si, por lo que claro !!...

Unknown dijo...

Al terminar y mandarlo a abrir el nuevo JFrame me lo abre dos veces, he intentado de todo, pero el proceso se ejecuta dos veces al mismo tiempo así que ninguna validación que le hago funciona y continua abriendo el mismo JFrame 2 veces, AYUDA!!

Unknown dijo...

Ayuda A mi me termina la ejecucion y llama el otro frame pero aunque el frame de carga este cerrado al parecer la clase del splash se sigue ejecutando y despues me vuelve a abrir el frame principal y se queda asi en un bucle

pibunited dijo...

muchas gracias, abre splash, luego abre un nuevo form y cierra splash, todo funca bien, aunque los comentarios terminaron de ayudar el post esta muy bien también, gracias por compartir con el post y los comentarios se complementa todo les dejo todo mi codigo funcional para que adecuen a lo suyo... crean un form llamado: splash y agregan el primer codigo crean una clase java sin main llamada HiloProgreso.java y agregan el segundo(cuidando en ambas de pegar en los lugares incorrectos) crean el form que sera llamado despues del formulario splash y en el codigo esta comentariado donde deben de llamar este nuevo form. espero les sirva a ustedes como me ayudaron a mi.


//codigo perteneciente al formulario splash dentro del paquete splash
package splash;

import java.awt.Color;
import formulario.Existencia;

public class splash extends javax.swing.JFrame {
HiloProgreso hilo;

public javax.swing.JProgressBar getjProgressBar1() {
return progreso;
}
public void iniciarSplash() {

this.getjProgressBar1().setBorderPainted(true);
//this.getjProgressBar1().setForeground(new Color(50, 50, 153, 100));
this.getjProgressBar1().setStringPainted(true);
}
public splash() {
initComponents();//Método por defecto

iniciarSplash();
this.setLocationRelativeTo(this);
//Creamos un objeto HiloProgreso al cual
//le pasamos por parámetro la barra de progreso
hilo=new HiloProgreso(progreso);
//Iniciamos el Hilo
hilo.start();
//Le damos tamaño y posición a nuestro Frame
//this.setLocation(200,200);
this.setLocationRelativeTo(this);
this.setSize(472,249);
//Liberamos recursos
hilo=null;

}



private void progresoStateChanged(javax.swing.event.ChangeEvent evt) {
if (progreso.getValue()==100){
this.dispose();
//Aqui llamamos al JFrame que queremos que aparezca despues
Existencia s = new Existencia();
s.verifica(); //en este caso verifica es un metodo dentro de mi form
//si quieren llamar el form coloquen: s.setvisible(true);
}
}

//inicia codigo por defecto de tu formulario
/**
* @param args the command line arguments
*/
public static void main(String args[]) {


/* Create and display the form */
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new splash().setVisible(true);


}
});
}

// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JProgressBar progreso;
// End of variables declaration
}
//finaliza codigo por defecto de tu formulario

____________________________________________________________________
//Codigo perteneciente a la clase splash.java dentro de mi paquerte splash


package splash;
import formulario.Existencia;
import javax.swing.JProgressBar;

public class HiloProgreso extends Thread
{

JProgressBar progreso;
public HiloProgreso(JProgressBar progreso1)
{
super();
this.progreso=progreso1;



}

public void run()
{
for(int i=1;i<=100;i++)
{
progreso.setValue(i);
pausa(10);

}



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

}
}

Unknown dijo...

Excelente aporte amigo.

Publicar un comentario

Ingresa tu comentario .... con el siguiente formato EMAIL - COMENTARIO para poder responderte :