package fr.mch.mdo.applets;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.image.MemoryImageSource;
public class ColorRectangleCanvas extends Canvas
{
/**
*
*/
private static final long serialVersionUID = -4512214117741522648L;
private int width;
private int height;
private int colorMap[];
private Image rectangleColor;
ColorRectangleCanvas(int width, int height)
{
this.width = width;
this.height = height;
colorMap = new int[width * height];
rectangleColor = null;
super.setSize(width, height);
int i = 0;
do
{
int j = 1;
do
colorMap[i + (height - j) * width] = Color.HSBtoRGB((float) i
/ width, (float) j / height, 0.75F);
while (++j <= height);
}
while (++i < width);
rectangleColor = createImage(new MemoryImageSource(width, height,
colorMap, 0, width));
}
public Color getColorAt(int i, int j)
{
Color color = null;
try
{
int index = i + j * width;
if (0 < j && j < height && 0 < i && i < width)
color = new Color(colorMap[index]);
}
catch (ArrayIndexOutOfBoundsException e)
{
e.printStackTrace();
}
return color;
}
public void paint(Graphics g)
{
g.drawImage(rectangleColor, 0, 0, this);
}
}