Установить цвет JLabel, используя строку
Я работаю над проектом Java. Я хочу, чтобы пользователь ввел цвет для метки. Я хочу сделать что-то вроде этого, но со строкой.
jLabel3.setForeground(Color.blue);
Вот что я пытался, но не получилось:
String a = "blue";
jLabel3.setForeground(Color.a);
или же:
String a = "blue";
jLabel3.setForeground(a);
Есть ли другой способ сделать это с помощью метода? Любая помощь будет отличной. Благодарю вас.
3 ответа
Решение
Вот один из способов:
Map<String, Color> colors = new HashMap<String, Color>();
// ...
colors.put("blue", Color.BLUE);
colors.put("red", Color.RED);
colors.put("green", Color.GREEN);
// other colors
Тогда используйте это как:
String a = "blue";
jLabel3.setForeground(colors.get(a.toLowerCase()));
РЕДАКТИРОВАТЬ: рассмотреть вариант выбора цвета. См. Как использовать средства выбора цвета.
Попробуйте отражение:
Color color;
try {
Field field = Class.forName("java.awt.Color").getField("yellow");
color = (Color)field.get(null);
} catch (final Exception e) {
e.printStackTrace();
}
Помимо этого вы можете создать карту цветов и их названия.
Не уверен, что есть лучший способ, но вы могли бы сделать что-то вроде:
If("blue".equals(a)){
jLabel3.setForeground(Color.blue);
}