And when you said that you "are using Awt.Containers/Components for the different screens/game elements", do you mean that you are drawing sprites using them, or just for other methods. Either way you may find that you are drawing all of the screen elements each frame due to [say] having transparent layers and not specifying update regions when you are updating.
I use containers/components for painting as well. I just call repaint() whenever they are modified.
I thought that would take care of clipping the drawing regions. I think it doesn't actually matter because I end up ignoring all the paint() calls other than the one in the main loop which calls the paints the top container. This probably results in painting everything again.
If I go with passive rendering I end up getting some flicker in some containers. I presume thats because the paint() thread can't access all the components all the time.
I'm not sure I understand how keldon85 improved performance. Is it just by initializing the image through the initializeGraphics ( int[] buffer ) call? Does this result in the image being rendered faster every paint() call? Currently I just read pngs to a Java.Image and then paint the image to a BufferedImage to get it accelerated.
Image loadedImage= Toolkit.getDefaultToolkit().createImage(byte[]);
BufferedImage bufImage=
GraphicsConfiguration.createCompatibleImage(loadedImage.getWidth(null),
loadedImage.getHeight(null),
Transparency.TRANSLUCENT);
bufImage.getGraphics().drawImage(im, 0, 0, null);