Here's some code from a game that I'm currently writing, you might find it helpful. It uses a two buffer strategy and blits between them to avoid tearing. It also uses active rendering instead of waiting for repaint events which should help you control the frame rate. It keeps track of the frame rate, so that should help you make sure it's fast enough; just set the RenderThread.sleep() to 8 or 4 like rob said.