Java - Indicar el progreso (ProgressMonitor)

 
Vista:

Indicar el progreso (ProgressMonitor)

Publicado por Antonio lopez (1 intervención) el 19/06/2007 18:16:15
Por favor ayudadme con esto :

He creado una clase MonitorTarea que dentro tiene un ProgressMonitor para monitorizar las ejecuciones más largas. El probema es que especifico todo lo que me pide el API de Java y me muestra una ventana sin las cadenas de texto que le pase, y sin la barra del tanto por ciento completado. Sólo muestra una ventana en blanco que pone "Progreso..."

El código de mi clase es el siguiente

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
public class MonitorTarea{
 
ProgressMonitor monitor;
private static final long serialVersionUID = 1L;
 
String titulo;
String texto, textoBase;
int pasoInicial, pasoFinal, pasoActual;
Component padre = FachadaControlador.getPadre();
 
public void setTitulo(String titulo){
this.titulo=titulo;
}
 
public String getTitulo(){
return titulo;
}
 
public void setTexto(String texto){
this.texto=texto;
textoBase=texto;
}
 
public String getTexto(){
return texto;
}
 
public void setPasoInicial(int pasoInicial){
this.pasoInicial=pasoInicial;
}
 
public int getPasoInicial(){
return pasoInicial;
}
 
public void setPasoFinal(int pasoFinal){
this.pasoFinal=pasoFinal;
}
 
public int getPasoFinal(){
return pasoFinal;
}
 
public void setPasoActual(int pasoActual){
this.pasoActual=pasoActual;
texto=textoBase+" "+getPorcentaje()+"%";
monitor.setNote(texto);
monitor.setProgress(pasoActual);
}
 
public int getPasoActual(){
return pasoActual;
}
 
public int getPorcentaje(){
Double porcentaje = new Double(((double)pasoActual)*((double)100.0)/((double)pasoFinal));
return porcentaje.intValue();
}
 
public void abrir(){
monitor = new ProgressMonitor(null , titulo, texto, pasoInicial, pasoFinal);
}
 
public boolean cancelado(){
return monitor.isCanceled();
}
 
public void cerrar(){
monitor.close();
}
 
}

Este código lo llamo de esta manera:

1
2
3
4
5
6
7
8
9
10
11
12
MonitorTarea monitor = new MonitorTarea();
monitor.setTitulo("Mi tarea larga");
monitor.setTexto("Completado");
monitor.setPasoInicial(0);
monitor.setPasoFinal(numFilas);
monitor.abrir();
.......
[Dentro de un for]
monitor.setPasoActual(i);
.......
[Al salir del for]
monitor.cerrar();

La ventana si que se cierra cuando se tiene que cerrar, y si hago un "monitor.getNote()" o obtengo su paso inicial o final me lo da correctamnente.

SOLO NO MUESTRA NINGUNA INFORMACION.

ocurre algo más extraño aun, si ocurre algun error o cualquier cosa que abra una JOptionPanel o similar, la ejecucion del programa logicamente se congela, pero el monitor en ese momento SI QUE MUESTRA la información que tiene que mostrar.

¿Nadie sabe por que ocurre?, ya no se lo que hacer.
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