How does java.awt.Color.getColor(String colorName) work?

强颜欢笑 提交于 2019-12-28 06:44:13

问题


I'm trying to get colors by name, and I came across Converting a String to Color in Java, which suggests using java.awt.getColor.

I can't work out what to pass it as a string though. The following

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

prints out

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

i.e. it is going with the default color in there.

I've put this in a text box, and tried alternative capitalisations etc. The docs aren't very helpful here. Can anyone suggest what magic strings to put in?


回答1:


The non-accepted answer uses Color.getColor. This method reads from system properties which may or may not be present. You should not use this method.

Instead, you should use the upvoted reflection method to find the static member of the Color class. Either this, or you should import your own color database which maps string names to RGB values.

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


来源:https://stackoverflow.com/questions/3772098/how-does-java-awt-color-getcolorstring-colorname-work

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!