В Java поддерживаются цвета в переносимой, аппаратно-независимой форме. Цветовая система в библиотеке AWT позволяет сначала задать какой угодно цвет, а затем найти наилучшее соответствие этому цвету с учетом аппаратных ограничений, накладываемых на отображение в том устройстве, где выполняется аплет или прикладная программа.
Таким образом, прикладной код не должен зависеть от того, насколько отличается поддержка цвета в разных аппаратных устройствах. Цвет инкапсулируется в классе Color.
В классе Color определяется несколько констант (вроде Color.black) для описания наиболее употребительных используемых цветов.
В следующей программе мы создаем экземпляр цвета с помощью конструктора класса Color. С помощью String объявляем переменную Иван Франко которая будет ссылаться на текст «Критика на творчество Ивана Франко». Данный текст будем выводить в окошко аплета с тремя разными цветами c1, c2 и c3.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
// Демонстрация работы цветов в Java import java.awt.*; import java.applet.*; /* * Для HTML, вставьте следующий код: * <applet code="ExampleWithColor" width=300 height=200> * </applet> */ public class ExampleWithColor extends Applet { public void paint(Graphics g) { Color c1 = new Color(255, 100, 100); Color c2 = new Color(100, 200, 233); Color c3 = new Color(0xff000000 | (0xc0 << 16) | (0x00 << 8) | 0x00); String IvanFranko = "Критика на творчество Ивана Франко"; g.setFont(new Font("TimesRoman", Font.PLAIN, 35)); g.setColor(c1); g.drawString(IvanFranko, 20, 40); g.setColor(c2); g.drawString(IvanFranko, 20, 110); g.setColor(c3); g.drawString(IvanFranko, 20, 180); } } |
Вот что должно получится:
Имеется также возможность создавать свои цвета, используя один из доступных конструкторов цвета. Ниже приведены три наиболее часто используемые формы конструкторов класса Color.
1 2 3 |
Color(int красный, int зеленый, int синий) Color(int значение_цвета_RGB) Color(float красный, float зеленый, float синий) |
Первый конструктор данного класса принимает три аргумента, задающие цвет в определенном сочетании красной, зеленой и синей составляющих. Значения этих составляющих должны находиться в пределах от 0 до 255, как показано ниже:
1 |
Color myColor = new Color(255, 100, 100); // светло-красный цвет |
Второй конструктор класса Color принимает единственный аргумент в виде целочисленного значения цвета, составленного из трех основных цветов (RGB).
Попробуйте купить лайки в Одноклассниках с помощью сервиса avi1. Здесь Вы сможете получить не только достаточно крупные скидки на оптовые покупки ресурса, но и весьма качественное и надежное исполнение услуги.
Это целочисленное значение организовано таким образом, чтобы на красную составляющую приходились двоичные разряды с 16-го по 23-й бит, на зеленую составляющую — с 8-го по 15-й бит, на синюю — с 0-го по 7-й бит. Ниже приведен пример применения такого конструктора:
1 2 |
int newRed = (0xff000000 | (0xc0 << 16) | (0x00 << 8) | 0x00); Color darkRed = new Color(newRed); |
И последний конструктор класса Color принимает три значения составляющих цвета в формате с плавающей точкой и в пределах от 0.0 до 1.0, обозначающих относительные значения красной, зеленой и синей составляющих цвета.
Составив цвет с помощью одного из описанных выше конструкторов, можно воспользоваться им в качестве образца для установки цвета переднего плана и/или фона с помощью методов setForeground() и setBackground(). Этот цвет можно также выбрать в качестве текущего для рисования.