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链接的问题中未被接受的答案已删除。根据我在答案中陈述的原因,使用接受答案中的方法。