import java.applet.*; import java.awt.*; import java.util.*; public class TimedLineCanvas extends Canvas { private String s = ""; private Vector lines = new Vector(); private static int statusLineHeight = 20; public void paint (Graphics g) { // Draw the status bar and message s, if any: g.setColor(Color.blue); Dimension canvasSize = getSize(); int canvasHeight = canvasSize.height; int canvasWidth = canvasSize.width; g.fillRect(0, canvasHeight - statusLineHeight, canvasWidth, canvasHeight); if (! (s == "")) { g.setColor(Color.white); g.drawString(s,20,canvasHeight - 5); } // Draw all the lines in red: g.setColor(Color.red); for (Enumeration lineEnum = lines.elements(); lineEnum.hasMoreElements();) { ((LCLine) lineEnum.nextElement()).paint(g); } } public void addLine(int x1, int y1, int x2, int y2) { lines.addElement(new LCLine(x1, y1, x2, y2)); repaint(); } public void clear() { lines.removeAllElements(); s = ""; repaint(); } public void setString(String s) { this.s = s; repaint(); } class LCLine { int x1, y1, x2, y2; public LCLine(int x1, int y1, int x2, int y2) { this.x1 = x1; this.y1 = y1; this.x2 = x2; this.y2 = y2; } public void paint(Graphics g) { g.drawLine(x1, y1, x2, y2); } } }