g.drawImage (im, 0, 0, (ImageObserver)null);
g.drawImage (doubleBuffer, 0, 0, (ImageObserver)null);
	public void paint(Graphics g)	{		Graphics g2 = g;		Image im = null;		Rectangle r = getBounds ();		// System.err.println(this + ".paint(...), bounds = " + r);				if (use_double_buffer)		{                  im = createImage (r.width, r.height);                  g2 = im.getGraphics ();                  if (this.getBackground() != null)                    {                      Color save = g2.getColor();                      g2.setColor(this.getBackground());                      g2.fillRect (0, 0, r.width, r.height);                      g2.setColor(save);                    }                  else                    g2.clearRect(0, 0, r.width, r.height);		}				paintBorder(g2);		paintComponent(g2);		paintChildren(g2);		if (use_double_buffer)		{			// always draw at 0,0, because regardless of your current bounds,			// the graphics object you were passed was positioned so the origin			// was at the upper left corner of your bounds.			g.drawImage (im, 0, 0, (ImageObserver)null);		}	}