Установка атрибутов контекста отображения

Оглавление

Рисование в окне
Контекст отображения
Установка атрибутов
Определение атрибутов
Рисование фигур
Аплет Draw
Исходные тексты
Проект аплета

## Установка атрибутов контекста отображения

Назад Вперед

Изменяя атрибуты контекста отображения, приложение Java может установить цвет для рисования графических изображений, таких как линии и многоугольники, шрифт для рисования текста, режим рисования и маску. Возможен также сдвиг начала системы координат.

### Выбор цвета

Изменение цвета, выбранного в контекст отображения, выполняется достаточно часто. В классе 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);

Здесь мы устанавливаем для окна аплета желтый цвет фона и черный цвет изображения.

### Выбор шрифта

С помощью метода setFont из класса Graphics вы можете выбрать в контекст отображения шрифт, который будет использоваться методами drawString, drawBytes и drawChars для рисования текста. Вот прототип метода setFont:

    public abstract void setFont(Font font);

В качестве параметра методу setFont следует передать объект класса Font.

### Класс Font

Приведем краткое перечисление полей, конструкторов и методов этого класса.

#### Поля класса

- name

    protected String name;

- size

    protected int size;

- style

    protected int style;

#### Битовые маски стиля шрифта

- BOLD

    public final static int BOLD;

- ITALIC

    public final static int ITALIC;

- PLAIN

    public final static int PLAIN;

#### Конструкторы

    public Font(String name,
      int style, int size);

#### Методы

- equals

Сравнение шрифтов

    public boolean equals(Object obj);

- getFamily

Определение названия семейства шрифтов

    public String getFamily();

- getFont

Получение шрифта по его характеристикам

    public static Font getFont(String  nm);
    public static Font getFont(String  nm,
      Font  font);

- getName

Определение названия шрифта

    public String getName();

- getSize

Определение размера шрифта

    public int getSize();

- getStyle

Определение стиля шрифта

    public int getStyle();

- hashCode

Получение хэш-кода шрифта

    public int hashCode();

- isBold

Определение жирности шрифта

    public boolean isBold();

- isItalic

Проверка, является ли шрифт наклонным

    public boolean isItalic();

- isPlain

Проверка, есть ли шрифтовое выделение

    public boolean isPlain();

- toString

Получение текстовой строки для объекта

    public String toString();

Создавая шрифт конструктором Font, вы должны указать имя, стиль и размер шрифта.

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

Стиль шрифта задается масками BOLD, ITALIC и PLAIN, которые можно комбинировать при помощи логической операции "ИЛИ":

Маска | Описание
BOLD | Утолщенный шрифт
ITALIC | Наклонный шрифт
PLAIN | Шрифтовое выделение не используется

Что же касается размера шрифта, то он указывается в пикселах.

Назад Вперед

Java | Продукты и решения | Технологии | Сервис и обучение
О компании | Партнеры | Новости | Поиск