I belive you want Method 2: interpolation:

public SimpleColorMap(double minLevel, double maxLevel, Color minColor, Color maxColor)

what you're doing is Method 1: color table.

public SimpleColorMap(Color[] colorTable)

Here's the relevant part of the javadoc comment for the SimpleColorMap

<li> Method 1: a color table.  The user can provide an array of Colors;
if the numerical value, cast into an integer, is between 0 and (the
length of this array - 1), then the appropriate Color is returned.

<li> Method 2: color interpolation.  The user can provide a min-level,
min-Color, max-level, and max-Color. If the numerical value is below
min-level, then minColor is provided. If it's above max-level, then
max-Color is provided.  If it's between min-level and max-level, then a
linear interpolation between min-Color and max-Color is provided.

BTW, you can also mix them.
Good luck,

On Sat, 4 Apr 2009, MASON-INTEREST-L automatic digest system wrote:

> There is 1 message totalling 49 lines in this issue.
> Topics of the day:
>   1. Problem displaying FastObjectGridPortrayal2D
> ----------------------------------------------------------------------
> Date:    Fri, 3 Apr 2009 19:19:38 -0400
> From:    Mark Coletti <[log in to unmask]>
> Subject: Problem displaying FastObjectGridPortrayal2D
> I have a FastObjectGridPortrayal2D of objects.  Each cell in the grid
> should change colors depending on a property of their respective
> objects.  However, the simulation does not change colors during runs
> as it should.
> I'm doing the following:
> - the objects stored in each FastObjectGridPortrayal2D cell is a
> Valuable and so declares a doubleValue() that returns a uniformly
> random (0,1]
> - where I set up portrayals in my SimState I do the following:
>         landPortrayal.setField(world.allLand); // world.allLand is an
> ObjectGrid2D with each element a Valued and Steppable object
> registered with Scheduler
>         landPortrayal.setMap(
>             new sim.util.gui.SimpleColorMap(
>                 new Color[] {Color.GREEN, Color.YELLOW}));
>    That is, I want (0,1] to map from green to yellow values.
> - Each stored object in my FastObjectGridPortrayal2D is a Steppable
> and is registered with the scheduler so that its doubleValue()
> iterates to the next random double
> I have verified that each object is setting doubleValue() to different
> random values and not to all zeros; yet all I see is a solid green
> block during runs.
> What am I doing wrong?
> Cheers,
> Mark