Check out the Swing tutorials:
http://download.oracle.com/javase/tutorial/uiswing/
http://download.oracle.com/javase/tutorial/ui/features/index.html
Anyway, regarding your problem. First of all, don't mix Swing and AWT components with eachother. Either use one or the other. If you're going to use Swing, extend a JPanel instead of a Canvas.
Also, when you use Swing, make sure to override paintComponent(Graphics), instead of paint(Graphics), or you will run into a lot of trouble. [edit] Rob mentioned all of this [/edit]
Now, you base your painting on some data, right? You can't paint if you don't know what to paint. Usually, you draw stuff depending on some fields you would have in your Add class. Now, this means that whenever you update your fields when the painting method has to draw something else, you should also be able to determine how big the painting is going to be. Then you update the preferred size of your component based on this information, and you revalidate the scroll pane.
Here are two examples, one for AWT, one for Swing: