import java.awt.*; import java.util.*; import java.applet.*; abstract public class IcobjWorkspace extends Applet implements Runnable { protected Image offscreenImage = null; protected Vector icobjsInTheWorkspace = new Vector(); public IcobjWorkspace(){ offscreenImage = createImage(size().width,size().height); } public void init(){ offscreenImage = createImage(size().width,size().height); } public void beginning(){} // painting public void update(Graphics g){ synchronized(icobjsInTheWorkspace){ doubleBuffering(g); } } public void doubleBuffering(Graphics g){ Graphics offscreenGraphics = offscreenImage.getGraphics(); paint(offscreenGraphics); g.drawImage(offscreenImage,0,0,this); } public void paint(Graphics g){ g.setColor(getBackground()); g.fillRect(0,0,size().width,size().height); g.setColor(getForeground()); for(int i=0;i