Noise Image :: Java/2D Graphics GUI/Animation [SSISO Community]

SSISO Community (Source & API)

Java
 Animation (4)  Area Calculation  Buffer Paint (3)  Chart (2)
 Clip  Color Model  Color  Composite
 Curve  Font  Full Screen  Geometry
 GIF  Gradient Paint (3)  Graphic Environment  Icon
 Image Filter  Image IO  Image  JAI
Noise Image
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.awt.image.ColorModel;
import java.awt.image.DataBuffer;
import java.awt.image.DataBufferByte;
import java.awt.image.IndexColorModel;
import java.awt.image.Raster;
import java.awt.image.WritableRaster;
import java.util.Random;

import javax.swing.JComponent;
import javax.swing.JFrame;

public class StaticGenerator extends JComponent implements Runnable {
  byte[] data;

  BufferedImage image;

  Random random;

  public void initialize() {
    int w = getSize().width, h = getSize().height;
    int length = ((w + 7) * h) / 8;
    data = new byte[length];
    DataBuffer db = new DataBufferByte(data, length);
    WritableRaster wr = Raster.createPackedRaster(db, w, h, 1, null);
    ColorModel cm = new IndexColorModel(1, 2, new byte[] { (byte) 0, (byte) 255 }, new byte[] {
        (byte) 0, (byte) 255 }, new byte[] { (byte) 0, (byte) 255 });
    image = new BufferedImage(cm, wr, false, null);
    random = new Random();
    new Thread(this).start();
  }

  public void run() {
    while (true) {
      random.nextBytes(data);
      repaint();
      try {
        Thread.sleep(1000 / 24);
      } catch (InterruptedException e) { /* die */
      }
    }
  }

  public void paint(Graphics g) {
    if (image == null)
      initialize();
    g.drawImage(image, 0, 0, this);
  }

  public static void main(String[] args) {
    JFrame f = new JFrame();
    f.add(new StaticGenerator());
    f.setSize(300, 300);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
  }
}
Is Event Dispatcher Thread
Hypnosis animation
Noise Image
How to create Animation: Paint and thread