Until now, I\'ve done double buffering by creating and Image, drawing what I wanted to that Image using its associated Graphics object then draw that Image to the screen usi
I recommend reading Painting in AWT and Swing if you haven't.
I don't think you usually need Do-It-Yourself double buffering if you're using JFrame. Swing has built in double buffering which is turned on by default. Manually doing this yourself will just slow things down. You can check if double buffering is on by calling isDoubleBufferingEnabled() on any of your JComponents.
There are cases where you may want to do this yourself, but that should be the exception rather than the rule. Maybe you're doing something involved like writing a game, in which case maybe my advice doesn't apply. Anyway, hopefully the above is useful info.
I've always had good results using the default BufferStrategy
by being careful to
This excellent example must double buffer because it draws continually on the initial thread rather than the EDT. In contrast, this fairly busy example relies on nothing more than repaint()
called in response to a Swing Timer
. I rarely need an offscreen buffer except for a composite. Finally, this tutorial article offers more guidelines.