-do you use new() operator inside paintComponent(Graphics g), if so try to avoid this use preallocation wherever possible
-if you use composites this slows down too
-a VolatileImgage can get lost and should be checked for validity inside drawing, like here:
http://download.oracle.com/javase/6/docs/api/java/awt/image/VolatileImage.html -instead of VolatileImage it is often recommended to use BufferStrategy:
http://download.oracle.com/javase/6/docs/api/java/awt/image/BufferStrategy.htmlhttp://gpwiki.org/index.php/Java:Tutorials:Double_Buffering