Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.awt.Color.getColor(String colorName)是如何工作的?_Java_Colors_Awt - Fatal编程技术网

java.awt.Color.getColor(String colorName)是如何工作的?

java.awt.Color.getColor(String colorName)是如何工作的?,java,colors,awt,Java,Colors,Awt,我试图通过名称来获取颜色,我发现,这建议使用java.awt.getColor 不过,我不知道如何将其作为字符串传递。以下 System.out.println( java.awt.Color.getColor( "black", Color.red ) ); 打印出来 java.awt.Color[r=255,g=0,b=0] i、 e.它将使用默认颜色 我把它放在一个文本框中,并尝试了其他资本化方法等。这些文档在这里并没有太大帮助。有人能建议放入什么魔法字符串吗?不被接受的答案使用Colo

我试图通过名称来获取颜色,我发现,这建议使用
java.awt.getColor

不过,我不知道如何将其作为字符串传递。以下

System.out.println( java.awt.Color.getColor( "black", Color.red ) );
打印出来

java.awt.Color[r=255,g=0,b=0]

i、 e.它将使用默认颜色


我把它放在一个文本框中,并尝试了其他资本化方法等。这些文档在这里并没有太大帮助。有人能建议放入什么魔法字符串吗?

不被接受的答案使用
Color.getColor
。此方法读取可能存在或不存在的系统属性。你不应该使用这种方法

相反,您应该使用向上投票的反射方法来查找
Color
类的静态成员。或者,您应该导入自己的颜色数据库,该数据库将字符串名称映射到RGB值

Color color;
try {
    Field field = Color.class.getField("yellow");
    color = (Color)field.get(null);
} catch (Exception e) {
    color = null; // Not defined
}

如果你仔细阅读链接的问题,你会发现Color.getColor不是一个合适的选择。这个问题中的反射版本似乎更合适。好吧,我读了好几遍,答案暗示我可以使用这种方法按名称获得颜色,这比使用反射更简洁自然。是否bwawok的答案是错误的,并且没有为默认颜色集设置系统属性?是的,就是这种情况。答案是错误的。嗨,埃里克,你说:“你不应该使用这种方法。”。。。但是为什么呢?我目前正在创建一个自定义ListCellRenderer。我希望它为所选项目使用默认颜色。你不使用这种方法的建议让我觉得很奇怪。我明白你为什么感到困惑。OP链接的问题中未被接受的答案已删除。根据我在答案中陈述的原因,使用接受答案中的方法。