Тогда, возможно, вы должны позволить своему пользователю ввести целочисленное значение (значение цвета RGB вместо строки), а затем сделать что-то вроде
g.setColor(new Color(rgbValue));
С другой стороны, если вы действительно хотите, чтобы он вводил Строки, вам, вероятно, понадобится карта, которая отображает строки на цвета, подобные этому
Graphics g = null;
String userInput = null;
// Retrieve / initialize the graphics and the user input
Map<String, Color> colors = new HashMap<>();
colors.put("RED", Color.RED);
colors.put("BLUE", Color.BLUE);
// ... add more colors
Color color = colors.get(userInput);
if (color != null) {
g.setColor(color);
} else {
System.out.println("Sorry, unknown color!");
}
И, наконец, если вы действительно хотите, чтобы вход String
ссылался непосредственно на цвета, определенные констатами в Color
класс, тогда вы можете использовать отражение и сделать что-то вроде этого:
Graphics g;
// Initialize Graphics
String colorString = "CYAN";
try {
Color color = (Color) Color.class.getField(colorString).get(null);
System.out.println(color);
g.setColor(color);
} catch (NoSuchFieldException | IllegalAccessException e) {
System.out.println("Sorry, unknown Color!");
}