Выбор цвета
Выбор цвета
Изменение цвета, выбранного в контекст отображения, выполняется достаточно часто. В классе Graphics для изменения цвета определен метод setColor, прототип которого представлен ниже:
public abstract void setColor(Color c);В качестве параметра методу setColor передается ссылка на объект класса Color, с помощью которого можно выбрать тот или иной цвет.
Как задается цвет?
Для этого можно использовать несколько способов.
Прежде всего, вам доступны статические объекты, определяющие фиксированный набор основных цветов:
Объект | Цвет |
public final static Color black; | черный |
public final static Color blue; | голубой |
public final static Color cyan; | циан |
public final static Color darkGray; | темно-серый |
public final static Color gray; | серый |
public final static Color green; | зеленый |
public final static Color lightGray; | светло-серый |
public final static Color magenta; | малиновый |
public final static Color orange; | оранжевый |
public final static Color pink; | розовый |
public final static Color red; | красный |
public final static Color white; | белый |
public final static Color yellow; | желтый |
Этим набором цветов пользоваться очень просто:
public void paint(Graphics g) { g.setColor(Color.yellow); g.drawString("Hello, Java world!", 10, 20); . . . }Здесь мы привели фрагмент исходного текста метода paint, в котором в контексте отображения устанавливается желтый цвет. После этого метод drawString выведет текстовую строку " Hello, Java world!" желтым цветом.
Если необходима более точная установка цвета, вы можете воспользоваться одним из трех конструкторов объекта Color:
public Color(float r, float g, float b); public Color(int r, int g, int b); public Color(int rgb);Первые два конструктора позволяют задавать цвет в виде совокупности значений трех основных цветовых компонент - красной, желтой и голубой (соответственно, параметры r, g и b). Для первого конструктора диапазон возможных значений компонент цвета находится в диапазоне от 0.0 до 1.0, а для второго - в диапазоне от 0 до 255.
Третий конструктор также позволяет задавать отдельные компоненты цвета, однако они должны быть скомбинированы в одной переменной типаint. Голубая компонента занимает биты от 0 до 7, зеленая - от 8 до 15, красная - от 16 до 23.
Ниже мы привели пример выбора цвета с помощью конструктора, передав ему три целочисленных значения цветовых компонент:
g.setColor(new Color(0, 128, 128));В классе Color определено еще несколько методов, которые могут оказаться вам полезными:
Метод | Описание |
public Color brighter (); | Установка более светлого варианта того же цвета |
public Color darker (); | Установка более темного варианта того же цвета |
public boolean equals (Object obj); | Проверка равенства цветов текущего объекта и объекта, заданного параметром |
public int getBlue (); | Определение голубой компоненты цвета (в диапазоне от 0 до 255) |
public int getRed (); | Определение красной компоненты цвета (в диапазоне от 0 до 255) |
public int getGreen (); | Определение зеленой компоненты цвета (в диапазоне от 0 до 255) |
getHSBColor (float h, float s, float b); | Определение компонент оттенка, насыщенности и яркости (схема HSB) |
public int getRGB (); | Определение компонент RGB для цвета, выбранного в контекст отображения |
public static int HSBtoRGB (float hue, float saturation, float brightness); | Преобразование цветового представления из схемы HSB в схему RGB |
public static float[] RGBtoHSB (int r, int g, int b, float hsbvals[]); | Преобразование, обратное выполняемому предыдущей функцией |
public String toString (); | Получение текстовой строки названия цвета |
Второй способ установки цвето фона и изображения заключается в вызове методов setBackground и setForeground, например:
setBackground(Color.yellow); setForeground(Color.black);Здесь мы устанавливаем для окна аплета желтый цвет фона и черный цвет изображения.