import java.awt.*;
import java.awt.event.*;
import java.beans.*;
import com.topaz.sigplus.*;
import java.io.*;
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;
import java.awt.image.BufferedImage;
import java.applet.*;
public class SigPlusImgDemo extends Applet implements Runnable
{
private static final long serialVersionUID = 6326220098483005800L;
SigPlus sigObj = null;
Thread eventThread;
public void init( )
{
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gc = new GridBagConstraints();
setLayout(gbl);
Panel controlPanel = new Panel();
setConstraints(controlPanel, gbl, gc, 0, 0,
GridBagConstraints.REMAINDER, 1, 0, 0,
GridBagConstraints.CENTER,
GridBagConstraints.NONE,0, 0, 0, 0);
add(controlPanel, gc);
Button clearButton = new Button("Löschen");
controlPanel.add(clearButton);
Button saveJpgButton = new Button("OK");
controlPanel.add(saveJpgButton);
try
{
ClassLoader cl = (com.topaz.sigplus.SigPlus.class).getClassLoader();
sigObj = (SigPlus)Beans.instantiate( cl, "com.topaz.sigplus.SigPlus" );
setConstraints(sigObj, gbl, gc, 0, 1,
GridBagConstraints.REMAINDER, 1, 1, 1,
GridBagConstraints.CENTER,
GridBagConstraints.BOTH, 5, 0, 5, 0);
add(sigObj, gc);
sigObj.setSize(100,100);
sigObj.clearTablet();
//setTitle( "Signature" );
// eingabe löschen
clearButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println(sigObj.getKeyReceipt());
sigObj.clearTablet();
}
});
// Bild speichern
saveJpgButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
try {
sigObj.setTabletState(0);
sigObj.setImageJustifyMode(5);
sigObj.setImagePenWidth(10);
sigObj.setImageXSize(1000);
sigObj.setImageYSize(350);
BufferedImage sigImage = sigObj.sigImage();
int w = sigImage.getWidth(null);
int h = sigImage.getHeight(null);
int[] pixels = new int[(w * h) * 2];
sigImage.setRGB(0, 0, 0, 0, pixels, 0, 0);
FileOutputStream fos = new
FileOutputStream("c:\\temp\\sig.jpg");
sigObj.setTabletState(1);
JPEGImageEncoder jpeg =
JPEGCodec.createJPEGEncoder(fos);
jpeg.encode(sigImage);
fos.close();
}
catch (Throwable th) {
th.printStackTrace();
}
}
});
// setup connection
sigObj.setTabletModel("SignatureGem1X5");
sigObj.setTabletComPort("HID1");
// start pad
sigObj.setTabletState(0);
sigObj.setTabletState(1);
eventThread = new Thread(this);
eventThread.start();
}
catch ( Exception e )
{
return;
}
}
public void run()
{
try
{
while ( true )
{
Thread.sleep(100);
}
}
catch (InterruptedException e)
{
}
}
//Convenience method for GridBagLayout
private void setConstraints(
Component comp,
GridBagLayout gbl,
GridBagConstraints gc,
int gridx,
int gridy,
int gridwidth,
int gridheight,
int weightx,
int weighty,
int anchor,
int fill,
int top,
int left,
int bottom,
int right)
{
gc.gridx = gridx;
gc.gridy = gridy;
gc.gridwidth = gridwidth;
gc.gridheight = gridheight;
gc.weightx = weightx;
gc.weighty = weighty;
gc.anchor = anchor;
gc.fill = fill;
gc.insets = new Insets(top, left, bottom, right);
gbl.setConstraints(comp, gc);
}
}