Stephan mentioned ScrollPane, not JScrollPane. The former is an AWT component, the second a Swing component. You shouldn't mix AWT and Swing components.
But I repeat his question: Why are you using AWT, and not Swing? Replace the Canvas with a JPanel in which you override paintComponent. Just make sure to call super.paintComponent(g) as the first statement.
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.  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:
Joined: Jan 21, 2010
Thanks a ton
Its now working....................yeahhhhhhhhhhhhhhhh.....