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.