Вопрос: Я хотел бы, чтобы пользователь вводил цвет (красный, синий), и он должен быть преобразован для использования с цветом
Я смотрел на это
Получив цвет из ввода String, я понимаю, что было бы лучше использовать JColorChooser или что-то подобное, хотя у меня нет этого роскошного. Это принятый для этого ответ.
String text = "red";
Color color;
Field field = Class.forName("java.awt.Color").getField(text.toLowerCase()); // toLowerCase because the color fields are RED or red, not Red
color = (Color)field.get(null);
Из этого ответа я вижу, что это действительно просто конкатенация ".RED" на java.awt.Color,
Хотя я не могу заставить это работать. Их лучший способ сделать это?
Причина, по которой я делаю это, заключается в простой программе, она будет запрашивать у пользователя цвет ("красный, синий, желтый и т.д.")
Затем я хотел бы сохранить этот цвет в текстовом файле. Откройте текстовый файл и загрузите его, хотя у меня есть эта часть allready, но я не пересек бридж, чтобы получить цвет от пользователя. Извините, я все еще изучаю Java, поэтому извиняюсь за любые вопиющие ошибки.
Благодарю.
Если мне нужно было сохранить мои цвета в текстовом файле, я бы использовал метод int getRGB()
, перевел число в шестнадцатеричный и сохранил int как String. Затем разбор его обратно в int, а затем цвет будет тривиальным.
например,
public static void writeOutMethod1(File file, List<Color> colorList) throws FileNotFoundException {
PrintWriter pw = new PrintWriter(file);
for (Color color : colorList) {
pw.printf("%08x ", color.getRGB());
}
pw.close();
}
Если бы мне пришлось использовать строки, которые по-человечески понятны, я бы создал свою собственную карту для связывания строк с цветом.