Возможно, самое обычное использование FontMetrics — для определения интервала между строками текста. Второе — для определения длины отображаемой строки.
Для отображения многострочного текста программа должна вручную отслеживать текущую позицию вывода. Когда требуется вывести новую строку, координата Y должна быть смещена к началу следующей строки. Когда строка отображается, координата X должна быть установлена в точку, где заканчивается предыдущая строка. Это позволяет записывать следующую строку, начиная с конца предыдущей.
Для определения интерлиньяжа можно использовать значение, возвращаемое методом getLeading(). Чтобы определять полную высоту шрифта, прибавьте значение, возвращенное методом getAscent(), к значению, возвращенному методом getDescent(). Эти значения можете использовать, чтобы позиционировать каждую строку выводимого текста. Однако во многих случаях нет нужды использовать эти индивидуальные значения. Часто все, что нужно знать — полную высоту строки, которая является суммой межстрочного пробела, асцендера и десцендера. Самый простой способ получить эти значения — вызвать getHeight(). Просто увеличивайте координату Y на это значение, каждый раз, когда нужно продвинуться к следующей строке при выводе текста.
Чтобы начать вывод с конца предыдущего вывода на той же строке, должны знать длину (в пикселах) каждой отображаемой строки. Для получения этого значения вызовите метод stringWidth(). Значение можно пользовать для продвижения координаты X при отображении очередной строки.
В следующем апплете показано, как можно вывести в окно множество строк текста. Кроме того, демонстрируется, как можно вывести несколько строк текста на одной строке. Обратите внимание на переменные curX и curY. Они следят за текущей позицией текстового вывода.