¿Cómo Funciona BuuferedImagge en un JPanel?

Que vengo indagando desde hace unos días... Ya que es para un proyecto... Que debo realizar, y se trata de un Paaintt en Java;
Utlilize de base un frame... Y sobre este utilice de lienzo un JPanel con fondo blanco, utilice los métodos de la clase Graphics2D, y puedo dibujar mis figuras sin problema con eventos del mouse... Puedo trazar una figura cualquiera, pero al momento de trazar la siguiente figura se borra la anterior, y así sucesivamente. Es decir... Mis dibujos no se mantienen en el lienzo.
He encontrado un tal BuufferedImagge, y he leído sobre este... Y se que ahí esta lo que estoy buscando pero no tengo idea de como trabaja, y como emplearlo.
Me han dicho que debo crear como un objeto de este, y sobre este realizar mis trazos, para que se mantenga lo dibujado, pero no tengo idea de como y si va dentro de mi método... Public void Paint ( Graphcis g)
Seria alguien tan amable, de ayudarme a utilizarlo o explcarmelo más detalladamente que debo hacer o como funciona... ¿para qué guarde mis trazos?
No debo gaurdar mis trazos en un archivo... Simplemente que mantenga mis trazos previamente dibujados en mi lienzo... Es todo...
De antemano gracias y espero respuesta pronta, ya que la hora 0 de la entrega de proyecto se me acerca !

1 respuesta

Respuesta
1
EL BufferedImage es una clase para contener imágenes, si la aceleración por hw esta disponible esta es usada, puede ser usada para aplicar la técnica de double buffering para evitar el parpadeo de la imagen cuando dibujas cosas varias veces en la pantalla.
En tu caso tu lo que requieres es mantener los trazos anteriores dibujados cuando realizas un nuevo trazo. Hay varias opciones que puedes tomar, una seria que tengas una especie de historia guardada de todo lo que estas dibujando, así en el método Paint dibujas toda esa historia de trazos.
La otra es precisamente usando el BufferedImage, en lugar de dibjuar directamente sobrel Panel, dibujas sobre una imagen, ten en cuenta que con cada trazo nuevo que hagas no tienes que crear de nuevo la imagen sino saldría lo mismo que el problema que tienes ahorita. En el método Paint solo tendrías que dibujar la imagen sobre la que previamente dibujas. Cuando creas un objeto del tipo BufferedImage tienes acceso a una clase Graphics que puedes castearla a Graphics2D y dibujar en ella como si lo hicieras sobre un panel.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas