Program Structure

An outline of the basic program structure for double buffering images is given below. It follows the strategy outlined in the previous section. In the next section, an example program using this structure is presented.
import java.applet.*;
import java.awt.*;
import java.util.*;

public class DoubleBuf extends Applet implements Runnable  {

// ************* init

public void init ()  {
}  // end init

// ************* start

public void start ()  {
  runThread = new Thread ( this );
  runThread.start ();
}  // end start

// ************* stop

public void stop ()  {
  if ( runThread != null ) runThread.stop ();
  runThread = null;
}  // end stop

// ************* mouseDown

public boolean mouseDown ( Event event, int x, int y)  {
}  // end stop


// ************* paint

public void paint ( Graphics g, Dimension d )  {

// *** Draw on the image here ***

}  // end paint

// ************* run thread

public void run ()  {
  while ( ! pause )  {
    g = offScreen.getGraphics ();
    paint ( g, d );
    g = this.getGraphics ();
    g.drawImage ( offScreen, 0, 0, Color.white, this );
    try {Thread.sleep ( 10 );} catch ( InterruptedException e) {;}
  }  // end while
  runThread = null;
}  // end run

}  // end DoubleBuf