我在用户界面上定义了一个ComboBox让用户选择想要的颜色,然后得到String类型的值,比如RED,GREEN,ORANGE,将他们传给要画图的参数。
然后,想将这一String类型的值转换为Color,可怎么也转换不了,得到的总是NULL,然后系统就用黑色画了,请教一下该怎么办。
具体是这样:
Color drawColor;
public Color getColor(String cc)
{
       drawColor=Color.getColor(cc.trim(),toLowerCase())
}
Color.getColor(cc.trim(),toLowerCase())//DEBUG的时候cc是所选的颜色,比如ORANGE,但这一句执行后结果drawColor为NULL

解决方案 »

  1.   

    cc.trim(),      返回什么
    toLowerCase() , 返回什么
    Color.getColor这个静态方法, 是获得系统属性后得到Color值
    看看具体代码
      

  2.   

    public static Color getColor(String s){
    if(s.toLowerCase().equals("blue"))return Color.blue;
    if(s.toLowerCase().equals("red"))return Color.red;
    if(s.toLowerCase().equals("black"))return Color.black;
    if(s.toLowerCase().equals("gray"))return Color.gray;
    if(s.toLowerCase().equals("darkgray"))return Color.darkGray;
    if(s.toLowerCase().equals("pink"))return Color.pink;
    if(s.toLowerCase().equals("orange"))return Color.orange;
    if(s.toLowerCase().equals("yellow"))return Color.yellow;
    if(s.toLowerCase().equals("green"))return Color.green;
    if(s.toLowerCase().equals("magenta"))return Color.magenta;
    if(s.toLowerCase().equals("cyan"))return Color.cyan;
    throw new InvalidParameterException();
    }
      

  3.   

    除了写if else 或 switch之类没有别的办法吗?
    我想用个函数转换倒底用什么函数呢,怎么转换
      

  4.   

    public Color getColor(String s) {
            try {
                Field filed = Color.class.getDeclaredField(s);
                return (Color)filed.get(null);
                
              } catch (Exception ex) {
                 return Color.red;
              }
    }
    把s换成用户选择的String