Foros del Web » Programación para mayores de 30 ;) » Java »

actualizar la gui o progress bar

Estas en el tema de actualizar la gui o progress bar en el foro de Java en Foros del Web. tengo un problema tengo una rutina en la que leo un archivo linea a linea , lo que debe hacer es que por cada linea ...
  #1 (permalink)  
Antiguo 10/09/2012, 13:26
Avatar de fahs82  
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años, 7 meses
Puntos: 12
actualizar la gui o progress bar

tengo un problema tengo una rutina en la que leo un archivo linea a linea , lo que debe hacer es que por cada linea la compare con los registros de una base de datos y si existe lo indique en un list y si no existe lo indique en otra list , el problema que tengo es que el formulario no hace ningun cambio hasta el final , quisiera mostrar el progreso real cuando se agrega linea por linea o mediante una progressbar pero desconosco como hacer lo de la progressbar o la manera de ir actualizando el formulario cada vez posteo mi codigo , soy novato en java y agradesco la ayuda y orientacion que me puedan brindar .

Código:
public void CargarArchivo(){
File ArchivoInventario = new File(PathArchivo);
BufferedReader entrada;
try{
entrada = new  BufferedReader(new FileReader(ArchivoInventario));
String linea;
while(entrada.ready()){
linea = entrada.readLine();

VerificarCodigo(linea);

}

}
catch(Exception E){
JOptionPane.showMessageDialog(null,E);
}

}

public void VerificarCodigo(String Codigo) throws SQLException{
ConexionMySQL ConexionMysql = new ConexionMySQL();
Connection cn = ConexionMysql.Conectar();
try{
Statement stCodigo = cn.createStatement();
ResultSet rsCodigo = stCodigo.executeQuery("Select BARCODE from BC_ARTICULOS where BARCODE ='" + Codigo + "'");
if(!rsCodigo.next() && rsCodigo.getRow() == 0){
modeloCodigosIncorrectos.addElement(Codigo);
lstCodigosIncorrectos.setModel(modeloCodigosIncorrectos);
cn.close();
}
else{
modeloCodigosCorrectos.addElement(Codigo);
lstCodigosCorrectos.setModel(modeloCodigosCorrectos);
cn.close();
}
}catch(Exception E){
JOptionPane.showMessageDialog(null,E);
cn.close();
}
}
  #2 (permalink)  
Antiguo 10/09/2012, 13:45
Avatar de chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: actualizar la gui o progress bar

Hola:

Echale un ojo a este enlace http://chuwiki.chuidiang.org/index.p...hread)_de_Java

Posiblemente lanzas tu código en la pulsación de algún botón, bloqueando todo el hilo de repintado y no viendo nada hasta que termina tu hilo con todo su proceso. Como se comenta en el enlace, la solución es lanzar un hilo aparte para hacer toda esta operación.

Se bueno.
__________________
Apuntes Java
Wiki de Programación
  #3 (permalink)  
Antiguo 10/09/2012, 15:52
Avatar de fahs82  
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años, 7 meses
Puntos: 12
Respuesta: actualizar la gui o progress bar

en efecto lanzo el evento seguido de abrir un jfilechooser , revise el link pero como comento estoy muy verde en java puse esto en el evento de ActionPerformed del boton pero me muestra el codigo en rojo y no me deja lanzar el debug , estoy programando en netbeans , si me pudieras ayudar en explicarme donde poner el codigo que mensionas en el link a continuacion te posteo lo que puse

[CODE]private void btnCargaArchivoActionPerformed(java.awt.event.Acti onEvent evt) {
btnCargaArchivo.addActionListener (new ActionPerformed()
{
public void actionPerformed (ActionEvent e)
{
Runnable miRunnable = new Runnable()
{
public void run()
{
try
{
AbrirArchivo();
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Thread hilo = new Thread (miRunnable);
hilo.start();
}
});

// TODO add your handling code here:
} [CODE]
  #4 (permalink)  
Antiguo 10/09/2012, 17:41
Avatar de fahs82  
Fecha de Ingreso: abril-2012
Ubicación: guadalajara
Mensajes: 139
Antigüedad: 12 años, 7 meses
Puntos: 12
Respuesta: actualizar la gui o progress bar

solucionado y dejo la solucion que estaba tan facil y agradesco a chuidiang , estaba ante mis narices y no comprendia , lo malo de programar con netbeans y no comprender el codigo detenidamente , la soluciones es la siguiente , presionando en la gui en el lado derecho en las opciones de events/actionperformed es poner el siguiente codigo
//declaramos la instancia de la accion a correr en segundo hilo
Runnable miRunable = new Runnable(){

@Override
public void run() {
//declaramos en el las rutinas a correr en este caso es el que tenia como AbrirArchivo
AbrirArchivo();
}
};
//declaramos un nuevo hilo que es donde comenzara a correr paralelamente sin afectar el repintado de la ventana con nuestro runable
Thread hilo = new Thread(miRunable);
//comenzamos a correr la rutina con el hilo
hilo.start();


espero les haya sido de utilidad a demas personas , es muy sencillo cuando te daz cuenta de como funciona de nuevo agradesco a chuindiag por su grandioso apoyo con los ejemplos de su wiki salu2

Etiquetas: bar, gui, mysql, progress, string
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:41.