请教:如何将String类型转换为 Color

时间:2021-08-04 09:00:14
我在用户界面上定义了一个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

4 个解决方案

#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

#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