|
яния от базовой линии
до нижней выступающей части символовpublic int getLeading();Расстояние между
строками текстаpublic int getHeight();Определение полной высоты символов,
выполняется по формуле:
getLeading() + getAscent() + getDescent()public int
getMaxAdvance();Максимальная ширина символов в шрифтеpublic int
getMaxAscent();Максимальное расстояние от базовой линии до верхней выступающей
части символов для символов данного шрифтаpublic int
getMaxDescent();Максимальное расстояние от базовой линии до нижней
выступающей части символов для символов данного шрифтаpublic int[] getWidths();
Массив ширин первых 256 символов в шрифтеpublic int
stringWidth(String str);Ширина строки, передаваемой методу в качестве
параметраpublic String toString();Тектовая строка, которая представляет данную
метрику шрифта
Обратите внимание на метод stringWidth, позволяющий определить ширину
текстовой строки. Заметим, что без этого метода определение ширины текстовой
строки было бы непростой задачей, особенно если шрифт имеет переменную ширину
символов.
Для определения полной высоты строки символов вы можете воспользоваться
методом getHeight.
Определение метрик заданного шрифта
Метод getFontMetrics с параметром типа Font позволяет определить метрики
любого шрифта, передаваемого ему в качетсве параметра:
public abstract FontMetrics getFontMetrics(Font f);
В отличие от нее метод getFontMetrics без параметров возвращает метрики
текущего шрифта, выбранного в контекст отображения.
Рисование геометрических фигур
В этом разделе мы опишем методы класса Graphics, предназначенные для
рисования элементарных геометрических фигур, таких как линии, прямоугольники,
окружности и так далее.
Линии
Для того чтобы нарисовать прямую тонкую сплошную линию, вы можете
воспользоваться методом drawLine, прототип которого приведен ниже:
public abstract void drawLine(int x1, int y1,
int x2, int y2);
Концы линии имеют координаты (x1, y1) и (x2, y2), как это показано на рис. 3.
1.
Рис. 3.1. Рисование прямой линии
К сожалению, в контексте отображения не предусмотерны никакие атрибуты,
позволяющие назрисовать пунктирную линию или линию увеличенной толщины.
Прямоугольники и квадраты
Среди методов класса Graphics есть несколько, предназначенных для рисования
прямоугольников. Первый из них, с именем drawRect, позволяет нарисовать
прямоугольник, заданный координатами своего левого вернего угла, шириной и
высотой:
public void drawRect(int x, int y,
int width, int height);
Параметры x и y задают, соответственно, координаты верхнего левого угла, а
параметры width и height - высоту и ширину прямоугольника (рис. 3.2).
Рис. 3.2. Рисование прямоугольника
В отличие от метода drawRect, рисующего только прямоугольную рамку, метод
fillRect рисует заполненный прямоугольник. Для рисования и заполнения
прямоугольника используется цвет, выбранный в контекст отображения (рис. 3.3).
Прототип метода fillRect приведен ниже:
public abstract void
fillRect(int x, int y, int width, int height);
Рис. 3.3. Рисование заполненного прямоугольника
Метод drawRoundRect позволяет нарисовать прямоугольник с закругленными
углами:
public abstract void
drawRoundRect(int x, int y, int width,
int height, int arcWidth, int arcHeight);
Параметры x и y определяют координаты верхнего левого угла прямоугольника,
параметры width и height задают, соответственно его ширину и высоту.
Размеры эллипса, образующего закругления по углам, вы можете задать с
помощью параметров arcWidth и arcHeight. Первый из них задает ширину эллипса, а
второй - высоту (рис. 3.4).
Рис. 3.4. Рисование прямоугольника с закругленными углами
Метод fillRoundRect позволяет нарисовать заполненный прямоугольник с
закругленными углами (рис. 3.5). Назначение параметров этого метода аналогично
назначению параметров только что рассмотренного метода drawRoundRect:
public abstract void
fillRoundRect(int x, int y, int width, int height,
int arcWidth, int arcHeight);
Рис. 3.5. Рисование заполненного прямоугольника с закругленными углами
Метод fill3Drect предназначен для рисования выступающего или западающего
прямоугольника:
public void
fill3DRect(int x, int y, int width,
int height, boolean raised);
Если значение параметра raised равно true, рисуется выступающий
прямоугольник, если false - западающий. Назначение остальных параметров
аналогично назначению параметров метода drawRect.
Многоугольники
Для рисования многоугольни
|
|