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 t开发者_StackOverflow中文版ried alternative capitalisations etc. The docs aren't very helpful here. Can anyone suggest what magic strings to put in?
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
}
精彩评论