2009-10-19 12 views
5

Estoy dibujando un montón de primitivas usando Java2D en la pantalla y estoy teniendo mucho desgarro/parpadeo.¿Cómo hago doble búfer en Java2D?

¿Cómo puedo habilitar/usar el doble almacenamiento temporal para que salga de la pantalla y luego muestre todo?

Respuesta

1

Algunos consejos para el uso de amortiguación efectiva como programador view

y algunos testing programs están disponible

1

1) Se crea una instancia BufferedImage. Para obtener el máximo rendimiento, asegúrese de que La imagen almacenada en el búfer utiliza el mismo modelo que la pantalla en la que está renderizando.

Comprobar esto para cómo crear un BufferedImage utilizando el Graphics2D pasa al método de pintura de cualquier componente (hay muchas maneras de crear imágenes en buffer, esto vincula unos pocos ...)

[http://www.exampledepot.com/egs/java.awt.image/CreateBuf.html][1]

2) Obtiene los Gráficos [getGraphics()] asociados con la imagen almacenada en el búfer, la envía a Graphics2D si es necesario y representa sus primitivas a la imagen almacenada invocando comandos en ese objeto gráfico (también puede pasar ese objeto gráfico a componentes para pintarse en su imagen de búfer).

3) Usted dibuja la imagen en el búfer en su componente anulando su método de pintura y llamando a una variante de drawImage() en el argumento Graphics2D pasado al componente.

lmk si necesita el código de muestra ...