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

l_gold_eagle 2006-03-27 09:29:31
我在用户界面上定义了一个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
...全文
412 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
interpb 2006-03-27
  • 打赏
  • 举报
回复
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
l_gold_eagle 2006-03-27
  • 打赏
  • 举报
回复
除了写if else 或 switch之类没有别的办法吗?
我想用个函数转换倒底用什么函数呢,怎么转换
wizardblue 2006-03-27
  • 打赏
  • 举报
回复
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();
}
interpb 2006-03-27
  • 打赏
  • 举报
回复
cc.trim(), 返回什么
toLowerCase() , 返回什么
Color.getColor这个静态方法, 是获得系统属性后得到Color值
看看具体代码

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧