Maurice_Lupin muchas gracias por tu ayuda!Conseguí hacerlo funcionar con tu ayuda. Pero por motivos prácticos tuve que pasarlo de un applet a una aplicación para ejecutarlo en escritorio, y ahora tengo el
problema inverso. Es decir, la aplicación funciona y consigo guardar la imagen que se genera, pero...
no consigo mostrar por pantalla la firma/dibujo conforme se crea. Pongo el código tal cual lo tengo por si nuevamente me podéis ayudar:
package firma;
import java.awt.event.*;
import java.awt.image.BufferedImage;
import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.Graphics2D;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.WindowConstants;
/**
* Nombre de clase = recogeFirma
* Descripcion = Clase encargada de capturar la firma que se dibuja en pantalla
* @version 1.0
*/
public class recogeFirma
{
static int uX=0;
static int uY=0;
static private JButton jButton_Borrar
; static private JButton jButton_Guardar
; static private JLabel jLabel_IL
; static private JPanel jPanel_Firma
;
/**
* Metodo principal de la aplicacion
* @param string[] args
*/
public static void main
(String[] args
) {
if ( args.length == 2 ) {
cDestino = args[ 0 ]; // 1 Ruta de la imagen (nombre y extensión de esta incluida)
cExtension = args[ 1 ]; // 2 Extensión de la imagen
} else {
JOptionPane.
showMessageDialog(null,
"Faltan parámetros de entrada. Por favor revise la llamada.",
"AppFirma",
JOptionPane.
WARNING_MESSAGE); }
Ventana.
getContentPane().
setLayout(new FlowLayout()); {
Ventana.getContentPane().add(jPanel_Firma);
jPanel_Firma.
setPreferredSize(new java.
awt.
Dimension(400,
263)); jPanel_Firma.
setBackground(new java.
awt.
Color(255,
255,
255)); }
{
jLabel_IL
= new JLabel("Introduzca su firma"); Ventana.getContentPane().add(jLabel_IL);
jLabel_IL.
setPreferredSize(new java.
awt.
Dimension(167,
33)); }
{
jButton_Borrar
= new JButton("Borrar"); Ventana.getContentPane().add(jButton_Borrar);
jButton_Borrar.setText("Borrar");
// Blanquear la imagen de la firma
}
});
}
{
jButton_Guardar
= new JButton("Guardar"); Ventana.getContentPane().add(jButton_Guardar);
jButton_Guardar.setText("Guardar");
try {
guardaFirma();
er.printStackTrace();
}
}
});
}
Ventana.pack();
Ventana.setSize(400, 350);
Ventana.setVisible(true);
Ventana.
getContentPane().
setBackground(new java.
awt.
Color(214,
214,
214)); Ventana.
setForeground(Color.
BLACK); Ventana.
setPreferredSize(new java.
awt.
Dimension(400,
350));
Ventana.
addMouseListener(new java.
awt.
event.
MouseAdapter() { uX=e.getX();
uY=e.getY();
}
});
int x = e.getX();
int y = e.getY();
g2.
setBackground(Color.
WHITE); g2.
setColor(Color.
BLACK);
g2.drawLine(uX, uY, x, y);
uX=x;
uY=y;
g2.dispose();
}
});
}
/**
* Metodo que guarda la imagen generada
*/
ImageIO.write(iFirma, cExtension, file);
}
}
Gracias nuevamente por la ayuda recibida!