| |||
| barra de progreso Buenas, Estoy haciendo un programa para el cole que copia ficheros y mientras copia los ficheros aparece una barra de progreso. el problema esta que la barra del progreso pasa de 0 a 100 de golpe cuando termina de copiar el fichero. Codigo: byte[] buf = new byte[1024]; int len; int count = 0; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); count +=len; barraProgress.setValue(count); } alguien sabe porque?? Saludos |
| ||||
| Respuesta: barra de progreso Debes setear el maximo de la barra de progreso. Por defecto es 100 y tu vas leyendo de 1024 en 1024. Usa el metodo setMaximum. Siendo el valor maximo el tamaño total del archivo. |
| |||
| Respuesta: barra de progreso Ronruby, lo tengo establecido el minomo y maximo de la barra. barraProgress.setMaximum(tamaño_fichero_temp); barraProgress.setMinimum(0); . tambien agrege validate(); repaint(); y continua sin funcionar codigo barraProgress.setMaximum(tamaño_fichero_temp); barraProgress.setMinimum(0); barraProgress.setValue(0); InputStream in = new FileInputStream(archivo_temp); OutputStream out = new FileOutputStream(ruta_destino_paste); byte[] buf = new byte[1024]; int len; int count = 0; while ((len = in.read(buf)) > 0) { out.write(buf, 0, len); count +=len; System.out.println(count); barraProgress.setValue(count); ventana.validate(); ventana.repaint(); } |
| |||
| Respuesta: barra de progreso Cita: y como lo tendria que hacer??
Iniciado por HackmanC Hola, Adicionalmente tienes que ejecutar el método setValue() en un SwingWorker, porque el hilo donde estás leyendo bloquea toda la GUI y no actualiza la pantalla mientras está corriendo la lectura, creo en este caso no te vale simplemente el repaint(), puesto que igualmente se va a ejecutar hasta cuando termine de leer el archivo osea el hilo principal esté libre. Saludos, |
| ||||
| Hola, Algo así : http://chuwiki.chuidiang.org/index.p...on_SwingWorker Si sabes inglés te podrá ser util también : http://docs.oracle.com/javase/tutori.../progress.html En el caso del InputStream te podrá ser util también el ProgressMonitorInputStream descrito en el tutorial anterior. Saludos,
__________________ “Controlar la complejidad es la esencia de la programación” — Brian Kernigan |