Originariamente inviato da floyd
un modo per ottenere un Color da una stringa è usare la reflection
codice:
      Field f = Class.forName("java.awt.Color").getField("red");
      Color red = (Color)f.get(null);
L'idea in sé è valida ... solo che Mitsui voleva una stringa del tipo "Color.red", il che non permette di usare la reflection (a meno di spezzare la stringa e togliere il "Color.").

Anzi, volendo usare nomi singoli tipo "red", "silver", ecc... e visto che nella classe Color non ce ne sono tante di costanti, si potrebbe pensare di creare una propria classe di questo tipo:

codice:
import java.awt.*;
import java.lang.reflect.Field;

public class MyColors
{
    public static final int red = 0xFF0000;
    public static final int silver = 0xC0C0C0;
    public static final int navy = 0x000080;

    public static Color decode (String name)
    {
        try
        {
            Field f = MyColors.class.getField (name);

            Integer i = (Integer) f.get (null);

            return new Color (i.intValue ());
        }
        catch (Exception e)
        {
            return null;
        }
    }
}
poi basta fare:

Color c = MyColors.decode ("navy");

Che ne dite?? Mi sembra molto carina come idea!