La Web del Programador: Comunidad de Programadores
 
    Pregunta:  2126 - GUARDAR PARTE DE UNA IMAGEN
Autor:  Daniel Sastre Lorenzo
El problema que tengo es que estamos haciendo que unas pelotas se muevan por la pantalla.
Lo hemos hecho sobre un frame. Las pelotas al moverse dejan una trazada. Lo que nos pasa es que cuando hacemos movimientos muy pequeños la trazada no se ve porque es borrada por la pelota que debería crearla, lo mismo ocurre cuando una pelota pasa por encima de la trazada de otra pelota.
Hemos pensado que la solución es recortar la parte del frame que redibujamos con la pelota pero no sabemos como recortarla ni tampoco donde guardarla o como recuperar ese tro de frame o imagen.

  Respuesta:  Carlos Garcia
en java lo que tienes que hacer es extender del Frame y agregarle a tu clase el metodo public void paint(Graphics g){} dentro de ese metodo llamas a repaint() y te vuelve a pintar el Frame y cada vez que cambies las coordenadas pareciera que el objeto se moviera y no te deja rastro

  Respuesta:  Alexis
hola, si tu guardas las coordenadas de tu pelota, antes de actualizarla, y dibujas una nueva pelota del color del fondo de tu frame, y luego actualizas las coodenadas y dibujas la pelota final, te resultara mas practico que estar definiendo vbariables de imagen y recortando trozos de pantalla

  Respuesta:  Kobe
Utiliza la tecnica del doble bùfer, crea un objeto Image y otro Graphics, dibuja primero en ellos y luego si se lo envias al paint asi:
Image im = createImage(size().width,size().height);
Graphics gr = im.getGraphics();
dibuja en este lo que quiereas dibujar y le reenvias im a g.drawImage

  Respuesta:  Marta Torres
Si no me equivoco, existe en java la técnica del doble buffer, para que los movimientos no dejen trazadas.