Оглавление

Рисование в окне
Контекст отображения
Установка атрибутов
Определение атрибутов
Рисование фигур
Аплет 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 | Продукты и решения | Технологии | Сервис и обучение
О компании | Партнеры | Новости | Поиск
Sun Microsystems Inc. Corporate Information Our partners News and Events Search on site Java Computing Products and Solutions Technologies and Researches Education and Service Content



Сайт создан в системе uCoz