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

Applet despues de minimizar ventana

Estas en el tema de Applet despues de minimizar ventana en el foro de Java en Foros del Web. Hola a todos! Tengo un problema con un applet que tengo en una pagina web en aspx. Todo funciona correctamente hasta que minimizo la pagina ...
  #1 (permalink)  
Antiguo 19/01/2011, 04:32
 
Fecha de Ingreso: mayo-2009
Mensajes: 65
Antigüedad: 10 años, 7 meses
Puntos: 0
Applet despues de minimizar ventana

Hola a todos! Tengo un problema con un applet que tengo en una pagina web en aspx. Todo funciona correctamente hasta que minimizo la pagina o pongo una ventana encima del applet, entonces el applet se queda en blanco y no vuelve a arrancar. He leido que el metodo start deberia ejecutarse cuando se vuleve a ver la pagina pero no lo hace. Tengo que decir que el applet esta dentro de un UpdatePanel y cuando presiono alguno de los botones de la pagina lo que hago es hacer UpdatePanel.Update() para que arranque con los nuevos datos que le paso por param actualizados. Espero que alguien pueda ayudarme.
  #2 (permalink)  
Antiguo 19/01/2011, 07:25
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 9 años
Puntos: 32
Respuesta: Applet despues de minimizar ventana

Hola:

Cada vez q minimizas-maximizas la página q contiene el applet o pasas una ventana por delante de él se llama al método paint(). Verifica q en tu applet este método dibuje lo q necesitas mostrar.
Un poco de código no vendría mal para ayudarte mejor.

saludos;

Nup_
  #3 (permalink)  
Antiguo 19/01/2011, 13:33
 
Fecha de Ingreso: mayo-2009
Mensajes: 65
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Applet despues de minimizar ventana

Gracias por contestar. Te voy a poner algo del codigo que tengo hecho ya que es muy largo:

public void init()
{
leo parametros con getParameter
}
public void start()
{

if (encendidoOsc.equals("True"))
{
color=azul_claro;
if(timer!=null) timer=null;
timer=new Timer(gc);
gc.clear();
setBackground(color);
setLayout(new BorderLayout());
add("Center",gc);
gc.RepresentacionSenales();

}
else
{
color=gris;
if(timer!=null) timer=null;
gc.clear();
setBackground(color);
setLayout(new BorderLayout());
add("Center",gc);
gc.repaint();
}
}

RepresentaciónSenales es una funcion que tengo en la clase canvas, donde según los valores de las variables va pasando por diferentes funciones hasta que se llama a repaint para dibujar el resultado.
  #4 (permalink)  
Antiguo 19/01/2011, 14:19
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 9 años
Puntos: 32
Respuesta: Applet despues de minimizar ventana

Hola:

Puedes poner el código del método paint() ??
Es ahí donde debes "repintar" tu interfaz.

saludos;

Nup_
  #5 (permalink)  
Antiguo 19/01/2011, 14:28
 
Fecha de Ingreso: mayo-2009
Mensajes: 65
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Applet despues de minimizar ventana

Aqui va el metodo paint es un poco largo

public void paint(Graphics g) {
int i;
int cual=0;
int cont=almc.almacen.size();
int mBase=288/2;
int mAltura=192/2;
Graphics2D g2=(Graphics2D)g;
g2.setColor(colorlinea);
g2.setStroke(new BasicStroke((float)ancho));


for(i=0;i<cont;i++)
{
if(Osciloscopio.activadoDual.equals("True")&& y==2)
{//para que pinte en dos colores
if(cual<(cont/2))
{
colorlinea=Osciloscopio.colorB;
g2.setStroke(new BasicStroke((float)Osciloscopio.AnchoB));
g2.setColor(colorlinea);

}
else
{
colorlinea=Osciloscopio.colorA;
g2.setStroke(new BasicStroke((float)Osciloscopio.AnchoA));
g2.setColor(colorlinea);
}
cual++;
}

lineas obj=(lineas)almc.almacen.elementAt(i);
g2.drawLine (obj.x1,obj.y1,obj.x2,obj.y2);

}
g2.setColor(negro);
g2.setStroke(new BasicStroke(0.5f));

for (int k1=24; k1<mBase*2; k1=k1+24)
for(int i1 = 0; i1 <mAltura*2; i1=i1+6)
{
g2.drawLine(mBase-k1,i1,mBase-k1,i1+2);
}
for (int k1=24; k1<mBase*2; k1=k1+24)
for(int i1 = 0; i1 <mAltura*2; i1=i1+6)
{
g2.drawLine(mBase+k1,i1,mBase+k1,i1+2);
}
for (int j1=24; j1<mAltura*2; j1=j1+24)
for(int m1 = 0; m1 <mBase*2; m1=m1+6)
{
g2.drawLine(m1,mAltura-j1,m1+2,mAltura-j1);
}
for (int j1=24; j1<mAltura*2; j1=j1+24)
for(int m1 = 0; m1 <mBase*2; m1=m1+6)
{
g2.drawLine(m1,mAltura+j1,m1+2,mAltura+j1);
}
/* La distancia es de altura=4.8 y ancho d=6.6 periodico*/
for(double d1 = 4.8; d1 <mAltura*2; d1=d1+4.8)
{
g2.draw(new Line2D.Double(mBase-d1,mAltura-3,mBase-d1,mAltura+3));
}
for(double d1 = 4.8; d1 <mAltura*2; d1=d1+4.8)
{
g2.draw(new Line2D.Double(mBase+d1,mAltura-3,mBase+d1,mAltura+3));
}
for(double p1 = 4.8; p1 <mBase*2; p1=p1+4.8)
{
g2.draw(new Line2D.Double(mBase-3,mAltura+p1,mBase+3,mAltura+p1));
}
for(double p1 = 4.8; p1 <mBase*2; p1=p1+4.8)
{
g2.draw(new Line2D.Double(mBase-3,mAltura-p1,mBase+3,mAltura-p1));
}
g2.drawLine(mBase,0,mBase,mAltura*2);
g2.drawLine(0,mAltura,mBase*2,mAltura);

}
  #6 (permalink)  
Antiguo 19/01/2011, 14:53
Avatar de nup_  
Fecha de Ingreso: noviembre-2010
Mensajes: 265
Antigüedad: 9 años
Puntos: 32
Respuesta: Applet despues de minimizar ventana

Daysy24:

Cada vez q minimizas-maximizas el applet ese método paint debería llamarse y pintar todo lo q pusiste ahí. Honestamente, no sé porque no lo hace.
Te recomiendo q tomes el código del applet (solamente del applet) y lo corras paso a paso en el eclipse (o tu IDE de java favorito). Ponle puntos de interrupción en todos los métodos de la clase Applet y simula las situaciones q pusiste: minímizalo-maximízalo, pásale una ventana por delante, etc.
Verifica q se esté llamando ese método paint y el por qué no está pintando nada.
Lamento no ser de más ayuda.

saludos;

Nup_
  #7 (permalink)  
Antiguo 19/01/2011, 15:56
 
Fecha de Ingreso: mayo-2009
Mensajes: 65
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Applet despues de minimizar ventana

Gracias x todo, mañana haré lo que dices comprobando por pasos el codigo del applet. Si encuentro algo te lo diré. Hasta luego
  #8 (permalink)  
Antiguo 20/01/2011, 13:14
 
Fecha de Ingreso: mayo-2009
Mensajes: 65
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: Applet despues de minimizar ventana

Ya consegui que volviera a pintar tras minimizar la ventana, tuve que poner en la clase Applet el metodo paint que llama al paint de la clase canvas asi:

public void paint()
{
gc.repaint();
}

Con esto se soluciona si se minimiza-maximiza o se pone una ventana que tape todo el applet, si solo se tapa parcialmente el trozo de ventana se queda dibujado en el applet. Bueno seguiré investigando. Gracias x todo

Etiquetas: applet, minimizar, ventanas
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:45.