Как получить высоту строки для шрифта, как в JTextArea?
Мне нужно получить расстояние от базовой линии одной строки до базовой линии до следующей текстовой строки, так же, как это выложено в JTextArea. Для этого у меня есть только шрифт с указанным размером шрифта.
Моя проблема в том, что для шрифта я могу получить только LineMetrics или FontMetrics, и они оба имеют разные размеры строки (getAscent/getHeight/getDescent) в зависимости от текущего текста - например, если есть буква f
подъем больше, и если есть g
, У меня спуск.
Есть ли способ получить "глобальное" свойство высоты шрифта? Так что я смогу правильно рисовать текст на Graphics2D.
1 ответ
Из JavaDoc для FontMetrics.getHeight()
:
Получает стандартную высоту строки текста в этом шрифте. Это расстояние между базовой линией смежных строк текста. Это сумма начального + подъема + спуска. Из-за округления это может не совпадать с getAscent() + getDescent() + getLeading(). Нет никакой гарантии, что строки текста, расположенные на таком расстоянии, не пересекаются; такие линии могут перекрываться, если некоторые символы превышают стандартную метрику или стандартную метрику спуска.
Так что, если ваши шрифты реализованы правильно, это должно быть расстояние, которое вы должны поместить между двумя строками текста.