Uso básico de elementos Swing con NetBeans – 25 – Uso de JProgressBar, barra de progreso.

Uso básico de JProgressBar desde Java

En esta guía veremos el funcionamiento de la barra de progresos “JProgressBar” de uso habitual en ciertos procesos que requieren tiempo de ejecución controlada. Como vemos en el diseño más abajo, creamos un formulario utilizando un JFrame, la nombramos “UsoJProgressBar”. Agregamos al formulario un “Botón” para lanzar nuestro método, el objeto “JProgressBar” y un “JTextArea” para mostrar el progreso de la ejecución.

Tomar en cuenta los nombres de variable de cada objeto, en el diseño se especifican; es muy importante ya que desde los métodos se utilizan estos nombres para referencia a cada objeto. Se puede cambiar el “Nombre de variable” de cada objeto haciendo clic derecho sobre la misma y clic en “Cambiar nombre de variable…”. (clic sobre la imagen para ampliar)

Para este ejemplo no se requiere de ninguna importación. Creamos los métodos siguiente en modo fuente, los métodos creados por nosotros las ubicamos al final de la declaración de variables, justo antes de la llave de cierre general. Se agregan comentario para aclarar la función de cada línea de código.

Código Java
    //Método que llamaremos desde nuestro botón
private void inicio(){
//Creamos un Thread para mejorar el ejemplo
final Thread t;
//Inicializamos
t = new Thread(new Runnable() {
//Implementamos el método run()
@Override
public void run() {
//Permite mostrar el valor del progreso
jPr.setStringPainted(true);
int x = 1;
//Utilizamos un while para emular el valor mínimo y máximo
//En este caso 0 - 100
while(x <= 100){
//Asignamos valor a nuestro JProgressBar por cada siclo del bucle
jPr.setValue(x);
//Valor que se mostrará en el JTextArea
salida.append("Progreso " + x + "%...\n");
//Hacemos una parada de medio segundo por cada siclo while
try {
Thread.sleep(500);
} catch (InterruptedException e) {
}
//Se incrementa el valor de x
x++;
}
}
});
//Se ejecuta el Thread
t.start();
}

Para el botón “Iniciar” utilizamos el evento “ActionPerformed”. Si hay dudas sobre como agregar “Eventos” a objetos, en las primeras guías de la serie vimos con detalle ese punto.

Código Java
    private void iniciarActionPerformed(java.awt.event.ActionEvent evt) {                                        
inicio();
}

Llegado a esta parte podremos ejecutar nuestro formulario. (Por si hay alguna duda en el proceso, debemos hacer clic derecho sobre nuestro archivo fuente y presionar “ejecutar archivo” ya que nuestro proyecto no tiene una clase principal definida).

11 comentarios :

  1. Como le puedo implementar un progress bar a mi aplicación al ejecutar un archivo por lotes

    ResponderEliminar
    Respuestas
    1. Que tal amigo, hay un segundo ejemplo (N° 26 de la serie) que puede serte más util. La barra de progresos utiliza 2 valores, el mínimo y el máximo, todo es cuestión de obtenerlas y pasarlas como parámetro. Saludos.

      Eliminar
  2. Y para hacer que se cierre o se oculte la ventana?

    ResponderEliminar
  3. Que tal, para cerrar se suele utilizar el comando System.exit(0) para ocultar si es ventana secundaria dispose(); en este caso debe ir después del cierre de llave del while. No se si es a lo que te refieres. Saludos.

    ResponderEliminar
    Respuestas
    1. hola, si eso si funciona ya lo probe en un codigo y gracias a todo lo que compartes amigo
      se bueno

      Eliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. Como puedo hacer invisible mi barra de progreso?

    ResponderEliminar
  6. wow wow, gracias, me ayado bastante.

    ResponderEliminar
  7. Ingrese el código, al ejecutarlo, me sale un error en el método setStringPainted(true); Me pueden ayudar a mejorarlo y ejecutar el código... Gracias.

    ResponderEliminar