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();
clearButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.out.println(sigObj.getKeyReceipt());
sigObj.clearTablet();
}
});
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();
}
}
});
sigObj.setTabletModel("SignatureGem1X5");
sigObj.setTabletComPort("HID1");
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)
{
}
}
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);
}
}