Double buffering is a technique that reduces nasty flicker when you repaint your graphics. Simply put, it draws everything to an off-screen buffer, and then exchanges it with the on-screen buffer.
Double buffering in Java is easy: just drop in code!
Needed items:
update()
method in your graphics object
public class mySuperCoolPanel extends Panel { ... // other stuff // double buffering Dimension offScreenSize = null; Graphics offScreenGraphics = null; Image offScreenImage = null; ... // other stuff public final synchronized void update (Graphics g) { Dimension d = size(); if ((offScreenImage == null) || (d.width != offScreenSize.width) || (d.height != offScreenSize.height)) { offScreenImage = createImage(d.width, d.height); offScreenSize = d; offScreenGraphics = offScreenImage.getGraphics(); offScreenGraphics.setFont(getFont()); } paint(offScreenGraphics); g.drawImage(offScreenImage, 0, 0, this); } }