Cargar un JProgressBar de 0 a 100 con un Timer en Java y NetBeans


En este articulo usaremos un timer y un jprogressbar, vamos a cargar el progressbar de 0 a 100 usando el timer, ademas funcion de iniciar, detener y reiniciar.

Vamos a usar un boton que servira para iniciar, detener y reiniciar el timer y progressbar.

Empecemos

Lo primer seria crear un proyecto en Netbeans, despues crear un paquete y agregar un JFrame Form.

Al JFrame Form le vamos a agregar 2 elementos: un Boton y un jProgressBar y quedara como en la siguiente imagen.

Lo que va a suceder el lo siguiente:

  • Al hacer click en el boton empezara el timer, un contador de 0 a 100, sumando 1 cada 100milisegundos y se modificara el valor del jprogressbar
  • Cuando el contador y el jprogressbar esten en 100 se detendra el timer.
  • Una vez finalizado se ofrecera la opcion de reiniciar
  • Si se da click al boton mientras el timer esta activo, se detendra el timer y el progressbar

Codigo

Ahora vamos a codificar.

Necesitas saber Como crear y usar el Timer en java y Usar Progressbar en Java

Tenemos que importar las 3 clases para que funcione el timer.

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Timer;

Ahora dentro de la clase y fuera de cualquier metodo vamos a definir las siguientes variables:

    int start = 0; // Variable contador
    Timer timer = null; // Variable del timer

Les voy a poner el codigo que se ejecutara al hacer click en el boton jbutton1.

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         

        if(timer==null && start==0){ // Si al presionar el boton: el timer es null y start=0, vamos a iniciar el contador
            timer = new Timer(100, new ActionListener(){ // Definimos que el contador realize la funcion cada 100milisegundos
                @Override
                public void actionPerformed(ActionEvent e) {
                    start++; // Sumamos 1 a la variable start
                    if(start>0 && start<100){ // Si start es mayor que 0 y menor que 100
                        jButton1.setText("Detener"); // poner Detener al texto del boton
                    }else if(start==100){ // Si start es 100
                    timer.stop(); // Detener el timer
                    jButton1.setText("Reiniciar");  // poner "Reiniciar" en el boton
                    }

                    jProgressBar1.setValue(start); // Colocar el valor de start en el progresscar, cada ciclo sumara 1 hasta llegar a 100
                }
            });
            timer.start(); // Iniciar el timer
        }else{ // Si al presionar el boton: timer no es null y/o start no es cero
            // Procedimiento para detener el timer y reinicar el contador
            start=0; // hacer el contador a CERO
            jButton1.setText("Iniciar"); // poner la etiqueta Iniar al boton
            jProgressBar1.setValue(start); // Poner el valor del contador al jprogressbar
            timer.stop(); // Detener el timer
            timer = null; // hacer null el timer
        }
        
    }

En los comentarios del codigo les explico cada una de las lineas.

Ahora les dejo un video del funcionamiento de lo que hemos visto.

Si te gusta el video dale Like y Suscribete a mi canal 😉 Ayudanos a crecer y crear mas contenido.

Conclusion

Podemos hacer muchas cosas con el Timer ej Java, esta solo es una idea.

Tambien podemos usar esta tecnica para crear las famosas pantallas de carga o Splash Screen pero eso lo podemos hacer en otra ocasion.

Que te parece el ejemplo?

Leave a comment