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.
//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.
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).
Como le puedo implementar un progress bar a mi aplicación al ejecutar un archivo por lotes
ResponderEliminarQue 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.
EliminarY para hacer que se cierre o se oculte la ventana?
ResponderEliminarQue 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.
ResponderEliminarhola, si eso si funciona ya lo probe en un codigo y gracias a todo lo que compartes amigo
Eliminarse bueno
Este comentario ha sido eliminado por el autor.
ResponderEliminarComo puedo hacer invisible mi barra de progreso?
ResponderEliminarNo entiendo la pregunta...
Eliminarwow wow, gracias, me ayado bastante.
ResponderEliminarIngrese 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.
ResponderEliminarQue tal. ¿Cuál es el error en específico?
Eliminar