java.awt.Canvas class is a rectangular area on which you can
draw using the methods of java.awt.Graphics 
discussed last week. The Canvas class has only 
three methods:
  public Canvas()
  public void addNotify()
  public void paint(Graphics g)
You generally won't instantiate a canvas directly.
Instead you'll subclass it and override the paint() method in your subclass to draw the picture you want.
For example the following Canvas draws a big red oval
you can add to your applet.
import java.awt.*;
public class RedOval extends Canvas {
  public void paint(Graphics g) {
  
    Dimension d = this.getSize();
    g.setColor(Color.red);
    g.fillOval(0, 0, d.width, d.height);
      
  }
  
  public Dimension getMinimumSize() {
    return new Dimension(50, 100);  
  }
  public Dimension getPreferredSize() {
    return new Dimension(150, 300);  
  }
  public Dimension getMaximumSize() {
    return new Dimension(200, 400);  
  }
}
Any applet that uses components should not also override paint(). Doing so
will have unexpected effects because of the way Java arranges components. Instead, create a Canvas object and do your drawing in its paint() methodCustom canvases are added to applets just like any other component. For example,
  public void init() {
    this.add(new RedOval());
  }
  
Canvases themselves do not normally fire any events. Next week, we'll see how to change that in the subclasses.