然后,想将这一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
4 个解决方案
#1
cc.trim(), 返回什么
toLowerCase() , 返回什么
Color.getColor这个静态方法, 是获得系统属性后得到Color值
看看具体代码
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();
}
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
try {
Field filed = Color.class.getDeclaredField(s);
return (Color)filed.get(null);
} catch (Exception ex) {
return Color.red;
}
}
把s换成用户选择的String
#1
cc.trim(), 返回什么
toLowerCase() , 返回什么
Color.getColor这个静态方法, 是获得系统属性后得到Color值
看看具体代码
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();
}
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
try {
Field filed = Color.class.getDeclaredField(s);
return (Color)filed.get(null);
} catch (Exception ex) {
return Color.red;
}
}
把s换成用户选择的String