import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JComponent;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Color;
public class Colors extends JComponent implements Runnable {
int[][] Data = new int[100][100];
int[][] Data2 = new int[100][100];
public Colors() {
generateData();
new Thread(this).start();
}
public void run() {
while (true) {
repaint();
changeData();
try {
Thread.sleep(17);
}
catch (InterruptedException e) {}
}
}
public void generateData() {
Random generator = new Random();
for (int x=0; x<100; x++) {
for (int y=0; y<100; y++) {
Data[x][y] = generator.nextInt(255);
}
}
}
public void changeData() {
Random generator = new Random();
for (int x = 1; x < 99; x++) {
for (int y = 1; y < 99; y++) {
Data2[x][y] = (Data[x-1][y-1]+
Data[x][y-1]+
Data[x][y+1]+
Data[x-1][y]+
Data[x-1][y+1]+
Data[x+1][y]+
Data[x+1][y-1]+
Data[x+1][y+1]);
}
}
for (int x = 1; x < 99; x++) {
for (int y = 1; y < 99; y++) {
int r = generator.nextInt(60)-30;
if(Data2[x][y] >= 128){
Data2[x][y]+= r;
}
}
}
}
public void paint(Graphics g) {
for (int x = 0; x < 100; x++) {
for (int y = 0; y < 100; y++) {
g.setColor(new Color(0,Data[x][y],0));
g.fillRect(x, y, 1, 1);
g.setColor(new Color(0,0,0));
g.drawRect(0, 0, 99, 99);
}
}
}
public static void main(String[] args) {
JFrame f = new JFrame("Colors");
f.add(new Colors());
f.setSize(333, 328);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
}