小编典典

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

java

我试图按名称获取颜色,并且遇到了在Java中将字符串转换为颜色的情况,建议使用java.awt.getColor

我不知道如何将它作为字符串传递。下列

System.out.println( java.awt.Color.getColor( "black", Color.red ) );

打印出来

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

即它正在使用默认颜色。

我将其放在文本框中,并尝试使用其他大写字母等。这里的文档不是很有帮助。谁能建议要放入哪些魔术弦?


阅读 452

收藏
2020-09-28

共1个答案

小编典典

不接受的答案使用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
}
2020-09-28