In this piece of your code,
the paint() method calls itself, always, the first thing it does, unconditionally. If you ever do this in
Java or any other language, you'll get a stack overflow, because the call stack just gets deeper and deeper and deeper and nothing will ever stop it.
The thing is, I just can't imagine
why you're making that call. Why don't you just say
This will copy the image out of your offScreenGraphic onto the screen, which is what it looks like you want to accomplish.
Otherwise, you could explain what you
are trying to do and I'm sure someone can help you figure out how.