El problema está en que me guarda una imagen en negro completamente, y no el dibujo realizado por pantalla.
Mis conocimientos en Java no son muy avanzados, de ahí que no consiga localizar el fallo. Os pongo a continuación el código que utilizo por si me podéis ayudar.
Gracias de antemano por vuestra ayuda, pues es algo que necesito para mi trabajo.
Código:
package raton5;
import java.awt.*;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.applet.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
@SuppressWarnings("serial")
public class RatonApplet extends Applet {
BufferedImage imagen = new BufferedImage(400,400, BufferedImage.TYPE_INT_RGB);
int uX=0, uY=0;
public void init() {
this.setBackground(Color.white);
this.addMouseListener(new java.awt.event.MouseAdapter() {
public void mousePressed(MouseEvent e) {
this_mousePressed(e);
}
public void mouseReleased(MouseEvent e) {
try {
this_mouseReleased(e);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
this.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() {
public void mouseDragged(MouseEvent e) {
try {
this_mouseDragged(e);
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}
});
}
void this_mousePressed(MouseEvent ev) {
uX=ev.getX();
uY=ev.getY();
}
void this_mouseDragged(MouseEvent ev) throws IOException {
int x = ev.getX();
int y = ev.getY();
Graphics g=getGraphics();
g.drawLine(uX, uY, x, y);
uX=x;
uY=y;
g.dispose();
}
void this_mouseReleased(MouseEvent ev) throws IOException {
File file = new File("C:\\prueba.png");
ImageIO.write(imagen, "png", file);
System.exit(1);
}
}
Gracias nuevamente. Saludos.