Получение цвета из строкового ввода

#java

#java

Вопрос:

Я создаю приложение, в котором в какой-то момент мне нужно, чтобы пользователь выбрал цвет, но чтобы не было просто 50 радиокнопок, мне было интересно, возможно ли на самом деле получить желаемый цвет из текстового поля или чего-то еще.

Комментарии:

1. как насчет поля выбора?

Ответ №1:

Почему вы не используете JColorChooser , который является стандартным компонентом Swing?

Вы можете прочитать руководство здесь, но оно довольно простое в использовании, поскольку в каждом диалоговом окне Swing результатом является что-то вроде:

средство выбора цвета

Ответ №2:

Не было бы проще просто создать JComboBox или что-то подобное?

Но чтобы ответить на ваш вопрос: да, это возможно. Я приведу фрагмент кода, который вы могли бы использовать в качестве отправной точки для начала работы (при условии, что вы все еще хотите, чтобы строка была цветной)

 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);
  

Комментарии:

1. Черт возьми, я не думал, что это корыто. Думаю, вместо этого я буду использовать поле со списком. Кроме того, спасибо, что ответили на мой актуальный вопрос, хотя я мог бы использовать аналогичный код в других ситуациях.

Ответ №3:

Попробуйте использовать Color.parseColor(text);

Ответ №4:

вы всегда можете использовать поле выбора.

информация о том, как создать JComboBox

Ответ №5:

Попробуйте

 Color aColor   = (Color) Color.class.getField("white").get(null);
  

Также,

Посмотрите, будет ли статический метод Color.decode() служить вашей цели.

Комментарии:

1. Обновлена ссылка на decode() функцию: docs.oracle.com/javase/7/docs/api/java/awt /…