Text Tool
[code=’java’]/*******************************************************
* MYCPLUS Sample Code – https://www.mycplus.com *
* *
* This code is made available as a service to our *
* visitors and is provided strictly for the *
* purpose of illustration. *
* *
* Please direct all inquiries to saqib at mycplus.com *
*******************************************************/
import java.awt.*;
import java.awt.event.*;
class TextTool implements KeyEventTool {
public void mousePressed(Point p, ScribbleCanvas canvas) {
canvas.mouseButtonDown = true;
canvas.x = p.x;
canvas.y = p.y;
offscreen = canvas.getOffScreenGraphics();
offscreen.setFont(font);
text = new StringBuffer();
}
public void mouseReleased(Point p, ScribbleCanvas canvas) {
canvas.mouseButtonDown = false;
}
public void mouseDragged(Point p, ScribbleCanvas canvas) {}
public void keyPressed(char c, ScribbleCanvas canvas) {
text.append(c);
offscreen.drawString(text.toString(), canvas.x, canvas.y);
canvas.repaint(canvas.x, canvas.y – ascent – 1,
fm.stringWidth(text.toString()) + 1,
ascent + descent + 2);
}
protected StringBuffer text;
protected Font font = new Font(“Helvetica”, Font.BOLD, 24);
protected FontMetrics fm = Toolkit.getDefaultToolkit().getFontMetrics(font);
protected int ascent = fm.getAscent();
protected int descent = fm.getDescent();
protected Graphics offscreen;
}
[/code]