import java.awt.*;

public class DrawPanel extends Container
{

    DrawPanel()
    {
	setLayout(new FlowLayout());
    }

    void setImage(Image im)
    {
	myImage = im;
    }

    public void update(Graphics g)
    {
	paint(g);
    }

    public void paint(Graphics g)
    {
	if (myImageBuffer == null)
	{
	    myImageBuffer = this.createImage(getSize().width,getSize().height);
	}
	myGraphics = myImageBuffer.getGraphics();
	
	if (myImage != null)
	{
	    myGraphics.drawImage(myImage, 0, 0, getSize().width,
				 getSize().height,
				 getBackground(), this);
	}
	else
	{
	    myGraphics.setColor(Color.white);
	    myGraphics.fillRect(0,0,getSize().width,getSize().height);
	}
	super.paint(myGraphics);

	g.drawImage(myImageBuffer, 0, 0, this);
	myGraphics.dispose();
    }

    
    private Image     myImageBuffer;
    private Graphics  myGraphics;
    private Image     myImage;
}
