Для определения специфических цветов используется две альтернативные цветовые модели: HSB (Hue-Saturation-Brightness, цветовой тон-насыщенность-яркость) и RGB (Red-Green-Blue, красный-зеленый-синий). Тон (оттенок) определяется числом между 0.0 и 1.0 (для цветов радуги, расположенных в порядке возрастания: красный, оранжевый, желтый, зеленый, голубой, синий (индиго) и фиолетовый). Насыщенность — другая шкала, ранжированная от 0.0 до 1.0, представляющая изменения тона от светлого (пастельного) к интенсивному. Значения яркости также ранжированы от 0.0 до 1.0, где 1 — ярко-белый, а 0 — черный. Класс color поставляет два метода, которые выполняют взаимные преобразования RGB- и HSB-моделей:
static int HSBtoRGB (float hue, float saturation, float brightness)
static float[ ] RGBtoHSB (int red, int green, int blue, float values[ ])
Метод HSBtoRGB() возвращает упакованное RGB-значение, совместимое с конструктором Color (int). Метод RGBtoHSB() возвращает массив HSB-значений с плавающей точкой, соответствующих целым числам RGB. Если параметр values — не null, то этот массив содержит HSB-значения, которые возвращаются в вызывающую программу. В противном случае создается новый массив, и в нем возвращаются HSB-значения. В любом случае массив содержит тон в элементе с индексом 0, насыщенность —- в элементе с индексом 1 и яркость — в элементе с индексом 2.