Ver Mensaje Individual
  #2 (permalink)  
Antiguo 15/06/2010, 15:29
Avatar de chuidiang
chuidiang
Colaborador
 
Fecha de Ingreso: octubre-2004
Mensajes: 3.774
Antigüedad: 20 años, 1 mes
Puntos: 454
Respuesta: Dibujo con canvas

Lo del método repaint() no queda más remedio. Lo que puedes hacer es dibujar aparte, me explico.

En el método paint() crea un BufferedImage del mismo tamaño que el Canvas (pide getWidth() y getHeight() al Canvas para determinar ese tamaño). Dibuja sobre el BufferedImage, pidiéndole el getGraphics() y usando eso para pintar. Una vez que tengas todos los nodos dibujados en el BufferedImage, pinta ese BufferedImage completo sobre el Canvas. No hagas un borrado previo del Canvas, ya que eso aumenta el parpadeo.

En resumen, el código se parecería a esto

Código java:
Ver original
  1. public void paint (Graphics g) {
  2.    BufferedImage imagen = new BufferedImage (getWidht(), getHeight(), ...);
  3.    imagen.getGraphics().draw....
  4.    ....
  5.    g.drawImage(imagen, 0, 0, ....);
  6. }

Aquí tienes algo más detallado http://chuwiki.chuidiang.org/index.p...l_doble_buffer

Se bueno.
__________________
Apuntes Java
Wiki de Programación