我在用户界面上定义了一个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
然后,想将这一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
toLowerCase() , 返回什么
Color.getColor这个静态方法, 是获得系统属性后得到Color值
看看具体代码
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();
}
我想用个函数转换倒底用什么函数呢,怎么转换
try {
Field filed = Color.class.getDeclaredField(s);
return (Color)filed.get(null);
} catch (Exception ex) {
return Color.red;
}
}
把s换成用户选择的String