package graphics;
public class ColorGrid extends java.awt.Canvas {
  int rows, cols;
  java.awt.Color colors[];
  ColorGrid(int numColors) {
    setSize(200, 200);
    graphics.charts.ColorUtils cu =
        new graphics.charts.ColorUtils(numColors);
    colors = cu.getColorMap();
    cols = Math.min(16, numColors);
    rows = (numColors - 1) / cols + 1;
  }
    java.awt.Color getColor(int x, int y) {
    java.awt.Dimension d = getSize();
    int cellW = d.width / cols;
    int cellH = d.height / rows;
    x /= cellW;
    y /= cellH;
        return colors[Math.min(colors.length - 1, y * cols + x)];
  }
  public void paint(java.awt.Graphics g) {
    java.awt.Dimension d = getSize();
    int cellW = d.width / cols;
    int cellH = d.height / rows;
    for (int i = 0; i < colors.length; i++) {
      int r = i / cols;
      int c = i % cols;
      g.setColor(colors[i]);
      g.fillRect(c * cellW, r * cellH, cellW, cellH);
    }
  }
  public static void main(String args[]) {
    gui.ClosableJFrame cf = new gui.ClosableJFrame();
    java.awt.Container c = cf.getContentPane();
    c.add(new ColorGrid(64));
    c.setLayout(new java.awt.FlowLayout());
    cf.setSize(200, 200);
    cf.setVisible(true);
  }
}