Hola a todos, tengo un applet al estilo paint y estoy intentando deshacer el último dibujo pintado sobre una imagen (BufferedImage) mediante un botón. He leido algo sobre guardar la imagen actual antes de dibujar cualquier cosa y si se pulsa el botón deshacer, que restaure la imagen anterior.
No encuentro ejemplos ni logro hacerlo funcionar así que recurro a este foro. La parte principal de mi código es:
Código PHP:
Pintar(){
....
imageBuffer = ImageIO.read(new URL(getCodeBase()+"mediocampoataque.jpg"));
grafico = imageBuffer.getGraphics();
...
}
public void paintComponent(Graphics g){
g.drawImage(imageBuffer, 0, 0, this);
}
public void mousePressed(MouseEvent evt) {
undoBuffer = imageBuffer.getSubimage(0,0,imageBuffer.getWidth(),imageBuffer.getHeight());
....
}
public void actionPerformed(ActionEvent evt){
if (command.equals("Deshacer")){
imageBuffer = undoBuffer.getSubimage(0,0,undoBuffer.getWidth(),undoBuffer.getHeight());
repaint();
}
Seguro que no está bien (porque no me funciona) pero no logro averiguar las instrucciones correctas para copiar una BufferedImage, guardarla para posteriormente usarla.
¿Alguna idea?