Как работает java.awt.Color.getColor (String colorName)? - PullRequest
9 голосов
/ 22 сентября 2010

Я пытаюсь получить цвета по имени, и я наткнулся на Преобразование строки в цвет в Java , которая предлагает использовать java.awt.getColor.

Я не могу понять, что передать как строку. Следующие

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

распечатывает

java.awt.Color [г = 255, г = 0, B = 0]

т.е. там будет цвет по умолчанию.

Я поместил это в текстовое поле и попробовал альтернативные заглавные буквы и т. Д. Документы здесь не очень полезны. Кто-нибудь может посоветовать, какие магические струны вставить?

1 Ответ

12 голосов
/ 22 сентября 2010

В непринятом ответе используется Color.getColor.Этот метод считывает системные свойства, которые могут присутствовать или не присутствовать.Вы не должны использовать этот метод.

Вместо этого вы должны использовать метод рефлексии upvoted, чтобы найти статический член класса Color.Либо это, либо вы должны импортировать свою собственную базу данных цветов, которая отображает имена строк в значения RGB.

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