rendered paste bodysketcher.javapackage sketcher;import java.awt.*;import java.awt.event.*;import java.util.Vector;public class Sketcher extends Frame { public SketchCanvas canvas; public Vector<PointPair> points_; public Sketcher() { setSize(500,500); setTitle("Sketch Pad"); canvas = new SketchCanvas(); add(canvas,"Center"); } public static void main(String[] args) { Sketcher frame = new Sketcher(); frame.points_ = new Vector<PointPair>(); WindowWatcher w = new WindowWatcher(); MouseWatcher mw = new MouseWatcher( frame.points_); frame.canvas.addMouseListener(mw); frame.canvas.addMouseMotionListener(mw); frame.setVisible(true); frame.addWindowListener(w); } public void repaint() { Graphics g = this.canvas.getGraphics(); for(int i = 0;i < points_.size();i++){ g.drawLine(points_.get(i).start.x, points_.get(i).start.y, points_.get(i).end.x, points_.get(i).end.y); } g.dispose(); } public void paint() { } public void paint(Graphics g) { } public void repaint(Graphics g) { }}sketchercanvas.javapackage sketcher;import java.awt.*;public class SketchCanvas extends Canvas { public void repaint() { } public void paint() { } public void paint(Graphics g) { } public void repaint(Graphics g) { }}mousewatcher.javapackage sketcher;import java.awt.*;import java.awt.event.*;import java.util.Vector;public class MouseWatcher extends MouseAdapter implements MouseMotionListener { private Point currentPoint, oldPoint; private Vector<PointPair> points_; public MouseWatcher(Vector<PointPair> points) { points_ = points; } public void mousePressed(MouseEvent e) { oldPoint = e.getPoint(); } public void mouseReleased(MouseEvent e) { } public void mouseDragged(MouseEvent e) { currentPoint = e.getPoint(); Graphics g = ((Canvas)e.getSource()).getGraphics(); g.drawLine(oldPoint.x, oldPoint.y, currentPoint.x, currentPoint.y); points_.add(new PointPair(oldPoint, currentPoint)); oldPoint = currentPoint; g.dispose(); } public void mouseMoved(MouseEvent e) {}}windowwatcher.javapackage sketcher;import java.awt.*;import java.awt.event.*;public class WindowWatcher extends WindowAdapter { public void windowClosing(WindowEvent e) { System.exit(0); } public void windowDeactivated(WindowEvent e) { e.getWindow().repaint(); } public void windowActivated(WindowEvent e) { e.getWindow().repaint(); } }pointpair.javapackage sketcher;import java.awt.*;public class PointPair { public Point start; public Point end; public PointPair(Point start_, Point end_){ start = start_; end = end_; }}