Несмотря на то что вы можете заказать шрифт с заданным именем и размером, не следует надеяться, что навигатор выделит вам именно такой шрифт, какой вы попросите. Для правильного размещения текста и других изображений в окне аплета вам необходимо знать метрики реального шрифта, выбранного навигатором в контекст отображения.
Метрики текущего шрифта в контексте отображения вы можете узнать при помощи метода getFontMetrics, прототип которого приведен ниже:
public FontMetrics getFontMetrics();Метод getFontMetrics возвращает ссылку на объект класса FontMetrics. Ниже мы привели список наиболее важных методов этого класса, предназначенных для получения отдельных параметров шрифта:
Метод | Описание |
public Font getFont(); | Определение шрифта, который описывается данной метрикой |
public int bytesWidth(byte data[], int off, int len); | Метод возвращает ширину строки символов, расположенных в массиве байт data. Параметры off и len задают, соответственно, смещение начала строки в массиве и ее длину |
public int charsWidth(char data[], int off, int len); | Метод возвращает ширину строки символов, расположенных в массиве символов data. Параметры off и len задают, соответственно, смещение начала строки в массиве и ее длину |
public int charWidth(char ch); | Метод возвращает ширину заданного символа |
public int charWidth(int ch); | Метод возвращает ширину заданной строки символов |
public int getAscent(); | Определение расстояния от базовой линии до верхней выступающей части символов |
public int getDescent(); | Определение расстояния от базовой линии до нижней выступающей части символов |
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.