Контекст отображения

Оглавление

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

Назад Вперед

Проще всего представить себе контекст отображения как полотно, на котором рисует художник. Точно так же как художник может выбирать для рисования различные инструменты, программист, создающий аплет Java, может выбирать различные методы класса Graphics и задавать различные атрибуты контекста отображения.

Методы класса Graphics

В качестве базового для класса Graphics (полное название класса java.awt.Graphics) выступает класс java.lang.Object.

Прежде всего мы приведем прототипы конструктора этого класса и его методов с краткими комментариями. Полное описание вы сможете найти в электронной документации, которая входит в комплект Java WorkShop.

Далее мы рассмотрим назначение основных методов, сгруппировав их по выполняемым функциям.

Конструктор

protected Graphics();

Методы

Стирание содержимого прямоугольной области

public abstract void clearRect(int x, int y,
  int width, int height);

Задание области ограничения вывода

public abstract void clipRect(int x, int y,
  int width, int height);

Копирование содержимого прямоугольной области

public abstract void copyArea(int x, int y,
  int width, int height, int dx, int dy);

Создание контекста отображения

public abstract Graphics create();

public Graphics create(int x, int y, 
  int width, int height);

Удаление контекста отображения

public abstract void dispose();

Рисование прямоугольной области с трехмерным выделением

public void draw3DRect(int x, int y, 
  int width, int height, boolean raised);

Рисование сегмента

public abstract void drawArc(int x, int y,
  int width, int height, 
  int startAngle, int arcAngle);

Рисование сегмента

Рисование текста из массива байт

public void drawBytes(byte data[], 
  int offset, int length, int x, int y);

Рисование текста из массива символов

public void drawChars(char  data[], 
  int offset, int length, int x, int y);

Рисование растрового изображения

public abstract boolean	drawImage(Image img,
  int x, int y, 
  Color bgcolor, ImageObserver observer);
public abstract boolean	drawImage(Image img, 
  int x, int y, 
  ImageObserver observer);

public abstract boolean	drawImage(Image img,
  int x, int y, 
  int width, int height, Color bgcolor, 
  ImageObserver observer);

public abstract boolean	drawImage(Image img,
  int x, int y, 
  int width, int height,
  ImageObserver observer);

Рисование линии

public abstract void drawLine(int x1, int y1,
  int x2, int y2);

Рисование овала

public abstract void drawOval(int x, int y, 
  int width, int height);

Рисование многоугольника

public abstract void drawPolygon(
  int xPoints[], 
  int yPoints[], int nPoints);

public void drawPolygon(Polygon p);	

Рисование прямоугольника

public void drawRect(int x, int y,
  int width, int height);

Рисование прямоугольника с круглыми углами

public abstract void drawRoundRect(
  int x, int y, 
  int width, int height, 
  int arcWidth, int arcHeight);

Рисование текстовой строки

public abstract void drawString(String str,
 int x, int y);

Рисование заполненного прямоугольника с трехмерным выделением

public void fill3DRect(int x, int y, 
  int width, int height, boolean raised);

Рисование заполненного сегмента круга

public abstract void fillArc(int x,
    int y, int width,
    int height, int startAngle,
    int arcAngle);

Рисование заполненного овала

public abstract void fillOval(int x, int y, 
  int width, int height);

Рисование заполненного многоугольника

public abstract void fillPolygon(
  int xPoints[], 
  int yPoints[], int nPoints);

Рисование заполненного многоугольника

public void fillPolygon(Polygon p);	

public abstract void fillRect(int x, int y,
  int width, int height);

Рисование заполненного прямоугольника с круглыми углами

public abstract void fillRoundRect(
  int x, int y, 
  int width, int height,
  int arcWidth, int arcHeight);

Прослеживание вызова метода dispose

public void finalize();	

Определение границ области ограничения вывода

public abstract Rectangle getClipRect();

Определение цвета, выбранного в контекст отображения

public abstract Color getColor();

Определение шрифта, выбранного в контекст отображения

public abstract Font getFont();

Определение метрик текущего шрифта

public FontMetrics getFontMetrics();

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

public abstract FontMetrics 
  getFontMetrics(Font f);	

Установка цвета для рисования в контексте отображения

public abstract void setColor(Color c);

Установка текущего шрифта в контексте отображения

public abstract void setFont(Font font);

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

Метод setPaintMode устанавливает в контексте отображения режим рисования, при котором выполняется замещение изображения текущим цветом, установленном в контексте отображения.

public abstract void setPaintMode();

Установка маски для рисования

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

Все остальные цвета изменяются непредсказуемым образом, однако эта операция обратима, если вы нарисуете ту же самую фигуру два раза на одном и том же месте.

public abstract void setXORMode(Color c1);

Сдвиг начала системы координат

Метод translate сдвигает начало системы координат в контексте отображения таким образом, что оно перемещается в точку с координатами (x, y), заданными через параметры метода:

public abstract void translate(int x, int y);

Получение текстовой строки, представляющей данный контекст отображения

public String toString();	
Назад Вперед