2012-08-17 12 views
5

No tengo demasiada experiencia con Java y tengo problemas para que funcione una barra de progreso. Estoy usando el creador de GUI incorporado de Netbeans. Actualmente mi programa lee imágenes de un directorio en una matriz de imágenes. Obviamente, esto lleva un poco de tiempo, por lo tanto, me gustaría una barra de progreso simple para actualizar al usuario y saber qué tan lejos está la carga. He usado uno de esos componentes de la barra de progreso de arrastrar y soltar.Cómo utilizar la barra de progreso en Java (GUI de Netbeans)

-Actualmente puedo obtener el número de archivos en un directorio y puedo calcular el porcentaje de archivos cargados -Los archivos se cargan correctamente en la matriz, pero la barra de progreso solo se actualiza después de cargar todos los archivos. He intentado revalidar y volver a pintar mientras hago un bucle, pero esto no funciona. -He probado varios tutoriales en docs.oracle pero parece que no funciona. - Creo que SwingWorker es la clase que debería usar, ¿es correcto?

¡Cualquier ayuda con un ejemplo o algún consejo sería muy apreciada! Gracias!

+0

sí use un columpio. –

Respuesta

2

Sí, que se han quedado en la trampa de todos los nuevos programadores de Swing - el Event Dispatching Thread

hablando Básicamente, este Thread es el corazón de cualquier sistema de oscilación. Es responsable de enviar eventos a todos los componentes de la interfaz de usuario, así como de realizar solicitudes al administrador de repintado para actualizar la interfaz de usuario.

Si realiza tareas que consumen tiempo mientras está en el EDT, evitará que la interfaz de usuario se actualice.

te sugiero que empezar por tener una lectura a través Worker Threads and SwingWorker y Concurrency in Swing y, porque sé que vas a pedir, tener una lectura de esta respuesta, que tiene una serie de ejemplos del uso de SwingWorker, JTextArea appending problems

Cuestiones relacionadas