Doing animation in a Canvas 1) write a subclass of Canvas that implements Runnable-the Canvas will handle the animation 2) When you extend Canvas you should always a) write a constructor that sends it all the stuff it needs (make instance variables to hold the stuff) b) override getPreferredSize() c) override getMinimumSize() (make an instance variable whose type is Dimension that you initialize in the constructor that these methods can return) d) override the paint method to draw what you want 3) define the run method (since it implements Runnable) to do the animation loop a) set up the new frame b) repaint() c) sleep (don't forget to catch the exception that sleep can throw) 4) define a start and stop method in the canvas to start and stop the thread 5) In the applet - make an instance of the Canvas subclass, call its start method in the applet's start method, and call its stop method in the applet's stop method