import java.awt.*; import java.awt.image.*; public class UpdateImage extends java.applet.Applet implements Runnable { int arrayLength, pixels[]; MemoryImageSource source; Image image; int width, height; public void init() { width = getSize().width; height = getSize().height; arrayLength = width * height; pixels = new int [arrayLength]; source = new MemoryImageSource(width, height, pixels, 0, width); source.setAnimated(true); image = createImage(source); // bad form... start threads in start(), stop them in stop() new Thread(this).start(); } public void run() { while (true) { try { Thread.sleep(1000/24); } catch( InterruptedException e ) { /* die */ } for (int x = 0; x < width; x++) for (int y = 0; y < height; y++) { boolean rand = Math.random() > 0.5; pixels[y*width+x] = rand ? Color.black.getRGB() : Color.white.getRGB(); } // Push out the new data source.newPixels(0, 0, width, height); } } public void paint( Graphics g ) { g.drawImage(image, 0, 0, this); } }