Ver Mensaje Individual
  #3 (permalink)  
Antiguo 14/02/2012, 09:52
Avatar de loganbdn
loganbdn
 
Fecha de Ingreso: enero-2009
Ubicación: Badalona
Mensajes: 114
Antigüedad: 15 años, 3 meses
Puntos: 1
Respuesta: Paint(), No quiero borrar lo anteriormente dibujado

Cita:
Iniciado por chuidiang Ver Mensaje
Hola:

El método update() se encarga del borrado y paint() se encarga de pintar todo desde cero.

Tus opciones son sobreescribir update() para que llame directamente a paint(), por lo que no se borraría el canvas. O bien hacer que paint() dibuje en cada llamada todo lo que tenga que dibujar, lo nuevo y lo viejo que no quieres que se borre. Esto último es lo habitual.

Se bueno.
¿Como sobreescribo el update() entonces para que no me borre el canvas? Mirando alguna pagina por internet he leido que update() solo sirve para AWT. ¿Si estoy utilizando Graphics2D uso SWING?

El codigo simplificado que utilizo mas o menos es este, luego mediante una llamada a un hilo cada 10ms me actualiza la posicion x e y de la textura al acabar el hilo hacia un repaint(). Pero claro me borra la anterior que es lo que no quiero que haga. ¿Entonces con el update() sobreescrito debo quitar tambien el repaint() que tengo puesto en el hilo que se ejecuta cada 10 ms?


public class Lienzo extends Canvas
{
int x=0,y=0,ancho=480,alto=400;

public void pintarOff(Graphics2D g2)
{
g2.drawImage(spriteTextura.cogerImagen(),spriteTex tura.X(),spriteTextura.Y(),this);
}
}
public void paint(Graphics g)
{
Graphics2D g2 = (Graphics2D)g;
Dimension d = getSize();
Image mImagen = createImage(d.width, d.height);
Graphics offG = mImagen.getGraphics();
pintarOff(offG);
g2.drawImage(mImagen, 0, 0, null);
}
}

Última edición por loganbdn; 14/02/2012 a las 09:58