import java.awt.*; import java.awt.image.ColorModel; import java.net.URL; import java.net.MalformedURLException; import java.applet.Applet; /** * * Extension to base applet class to avoid display flicker * * @version 1.0, 27 Oct 1995 * @author Matthew Gray * * Copyright (C) 1996 by Matthew Gray * * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and * distribute this software and its documentation for any purpose and * without fee is hereby granted, provided that the above copyright * notice appear in all copies and that both that copyright notice and * this permission notice appear in supporting documentation, and that * the name of Matthew Gray or net.Genesis not be used in advertising or * publicity pertaining to distribution of the software without specific, * written prior permission. I make no representations about the * suitability of this software for any purpose. It is provided "as is" * without express or implied warranty. */ public class NoFlickerApplet extends Applet { private Image offScreenImage; private Graphics offScreenGraphics; private Dimension offScreenSize; public final synchronized void update (Graphics theG) { 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()); } offScreenGraphics.setColor (Color.lightGray); offScreenGraphics.fillRect(0,0,d.width, d.height); paint(offScreenGraphics); theG.drawImage(offScreenImage, 0, 0, null); setBackground(java.awt.Color.lightGray); } }