Java - Problemas con repaint

 
Vista:

Problemas con repaint

Publicado por Jackpotxix (2 intervenciones) el 09/04/2007 04:01:53
Estoy haciendo un programa cuyo funcionamiento en lineas generales es que creo dos ventanas con Jframe una donde introduzco datos y en la otra estos datos modifican el dibujo de un robot.Utilizo repaint() para actualizar el dibujo, pero no sucede en el mismo hasta que no agrando la ventana del dibujo.Vamos que no se modifica asta que no agrando la ventana en vez de hacerlo immediatamente.
Como podria acer para que en cuanto active los cambios, estos se mostraran immediatamente sin necesidad de acer nada a la ventana???
Ademas me gustaria saber como acer para que el dibujo no se borre cuando le paso una ventana por encima,ya que este desaparece y para verlo de nuevo tengo que acer la operacion anterior de agrandar la ventana.

Saludos
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:Problemas con repaint

Publicado por galeginho (34 intervenciones) el 09/04/2007 11:12:25
lo que te pasa es que swing es un poco puñetero para trabajar con dos o mas componentes distintos "en paralelo" por el tema de los hilos, ya que cada frame solo puede recibir eventos de sus propios hilos por eso el repintado no funciona al llamarlo desde el otro frame, ami me pasaba lo mismo con una barra de progreso...

cuantos hilos tienes en el programa??

deberias hacer un hilo para cada frame en el main, de forma que los 2 frames estan en hilos paralelos al mismo nivel y ambos son hijos de main(el main no deberia ahcer nada mas). yo arregle mi problema con esta "chapuzilla"...

de todas formas deberias llamar a frame.getContentPane().repaint() en vez de frame.reapint()

espero que te sirva de ayuda

1saludo !!!
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:Problemas con repaint

Publicado por jackpotxix (2 intervenciones) el 09/04/2007 19:02:35
pues tengo dos hilos del programa.Lo que pasa que necesito los dos en la misma clase tengo variables en el frame donde introduzco los datos que luego utilizo para modificar el dibujo del otro frame...

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

RE:Problemas con repaint

Publicado por galeginho (34 intervenciones) el 10/04/2007 10:34:44
y no puedes hacer las variables estaticas para asi poder separar los frames en clases distintas, cada uno con sus hilos?

yo probaria a hacer 2 clases que extiendan de thread, una para cada frame, de forma que en sus metodos run metas un while que llame a los metodosque ya tengas implementados y un sleep adecuado.

algl asi:

main{

frameDatos = new ClaseFrameDatos()
framePintar = new ClaseFramePintar()

frameDatos.start()
framePintar.start()
}


classFrameDatos{
JFrame frameDatos;

public void run(){
while (variable){
//aki no deberias hacer nada mas ya que el coger los datos lo deberias tener / // implementado en los listener de los componentes del frame
sleep(200)
frameDatos.getContentPane().repaint()
}
}
}

la clase de pintar de la misma forma mas o menos. Haciendolo de esta forma, si haces las variables estaticas no deberias tener que modificar mucho mas y casi seguro que se te arregla el problema del repintado, por lo menos a mi me funciono..

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