Java - problema con swing

 
Vista:

problema con swing

Publicado por rare (1 intervención) el 01/08/2007 16:19:39
Resumiendo la aplicación el problema seria el siguiente:

Tengo un JFrame con un JButton y una JLabel.
El actionPerformed del JButton realizará una serie de tareas usando un bucle y el JLabel se actualiza para mostrar información sobre la tarea, algo tal que así:

public void actionPerformed(java.awt.event.ActionEvent e) {
for (int i=0;i<n;i++) {
jlabel.setText("Tarea " + i + " en progreso");
claseA.tarea(i);
}
}

El problema es que la JLabel no se actualiza con cada pasada del bucle, lo hace una vez terminado comiéndose toda la información intermedia.

¿Podéis ayudarme?

Gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:problema con swing

Publicado por jose luis (7 intervenciones) el 02/08/2007 03:03:41
Saludos:
Creo que esto pasa porque el bucle se ejecuta en milisegundos y esto hace que los cambios intermedios no sean detectado por nosotros, una forma seria por medio de un hilo el cual se inicie y cambie el texto de la etiqueta , y luego se detenga un tiempo prudencial para ver los cambios y asi hasta terminar el bucle.avisame si entendiste la idea.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:problema con swing

Publicado por angel (537 intervenciones) el 02/08/2007 08:32:29
Hola simplement mete tu bucle dentro de un nuevo Thread y ejecutalo.

public void actionPerformed(java.awt.event.ActionEvent e) {
new Thread()
{
public void run()
{
for (int i=0;i<n;i++) {
jlabel.setText("Tarea " + i + " en progreso");
claseA.tarea(i);
}
}
}
}.start();
}

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar