Java обеспечивает переносимость цвета, вне зависимости от устройства вывода объекта. Цветовая система AWT позволяет указывать в программе любой желаемый цвет. Более того, AWT находит наилучшее согласование этого цвета с заданными аппаратными ограничениями дисплея, выполняющего программу или апплет. Поэтому код не имеет никакого отношения к различиям в способах поддержки цветов разными аппаратными устройствами. Работа с цветом поддерживается классом Color.
В классе Color определено несколько цветовых констант (например, Color.black), специфицирующих ряд обычных цветов. Можено также создавать собственные цвета, применяя один из цветовых конструкторов. Обычно используются следующие его формы:
Color (int red, int green, int blue)
Color(int rgbValue)
Color(float red, float green, float blue)
Первый конструктор получает (через указанные параметры) три целых числа, которые определяют цвет как смесь красного, зеленого и синего цвета. Эти значения должны быть между 0 и 255, как в следующем примере:
new Color(255, 100, 100); // светло-красный
Второй цветовой конструктор получает одиночное целое число, которое содержит смесь красного, зеленого и синего цветов, упакованную в целое число. Целое число организовано с красным цветом — в битах от 16 до 23, зеленым цветом — в битах от 8 до 15 и синим цветом — в битах от 0 до 7. Пример этого конструктора:
int newRed = (0xff000000 | (0xc0 << 16) | (0x00 << 8) | 0x00);
Color darkRed = new Color(newRed);
Третий конструктор получает три float-значения (между 0.0 и 1.0), в которых определяется относительная смесь красного, зеленого и синего цвета.
После создания цветового объекта его можно использовать для установки цвета переднего плана и/или фона с помощью методов setForeground() и setBackground(). Его можно также использовать для установки текущего цвета рисования.