Swing netbeans multihilo con barra de progreso
Con este ejemplo podemos usar una barra de progreso en Netbeans, los controles se pueden dibujar y cuando necesitemos procesar algo que consuma tiempo lo podemos mostrar con la barra de progreso desde esta clase
static class HiloDeLaBarra extends Thread {
private static int RETARDO = 500;
JProgressBar Barra;
// Constructor
public HiloDeLaBarra(JProgressBar barra) {
Barra = barra;
}
// Subrutina que incrementa la barra de progreso
public void run() {
int minimo = Barra.getMinimum();
int maximo = Barra.getMaximum();
Runnable Incrementa = new Runnable()
{
public void run() {
int valor = Barra.getValue();
Barra.setValue(valor + 1);
}
};
for (int i = minimo; i < maximo; i++) {
try {
SwingUtilities.invokeAndWait(Incrementa);
Thread.sleep(RETARDO);
} catch (InterruptedException ignoredException) {} catch (InvocationTargetException ignoredException) {}
}
}
}
Podemos usar un botón para iniciar el proceso, al cual debemos colocarle en el ActionListener el llamado a la clase.
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
Boton.setEnabled(false);
Thread Hilo = new HiloDeLaBarra(BarraDeProgreso);
Hilo.start(); // Lo ejecuta
}
};
Boton.addActionListener(actionListener);
static class HiloDeLaBarra extends Thread {
private static int RETARDO = 500;
JProgressBar Barra;
// Constructor
public HiloDeLaBarra(JProgressBar barra) {
Barra = barra;
}
// Subrutina que incrementa la barra de progreso
public void run() {
int minimo = Barra.getMinimum();
int maximo = Barra.getMaximum();
Runnable Incrementa = new Runnable()
{
public void run() {
int valor = Barra.getValue();
Barra.setValue(valor + 1);
}
};
for (int i = minimo; i < maximo; i++) {
try {
SwingUtilities.invokeAndWait(Incrementa);
Thread.sleep(RETARDO);
} catch (InterruptedException ignoredException) {} catch (InvocationTargetException ignoredException) {}
}
}
}
Podemos usar un botón para iniciar el proceso, al cual debemos colocarle en el ActionListener el llamado a la clase.
ActionListener actionListener = new ActionListener() {
public void actionPerformed(ActionEvent e) {
Boton.setEnabled(false);
Thread Hilo = new HiloDeLaBarra(BarraDeProgreso);
Hilo.start(); // Lo ejecuta
}
};
Boton.addActionListener(actionListener);
Comentarios
Publicar un comentario