#java #java-2d
#java #java-2d
Вопрос:
Я отображаю некоторый графический текст на экране с помощью функции drawString (. . .) из библиотеки Java2D.
Ссылаясь на рисунок в этой статье, я хочу, чтобы моя строка выводилась из восходящей строки, а не из базовой. Простыми словами, есть ли какой-либо способ вычислить высоту черно-белой восходящей линии и базовой линии?
Ответ №1:
Обычный способ drawString
выровняет базовую строку с y
аргументом. Если вы хотите нарисовать строку так, чтобы восходящая строка была выровнена с y
, вам нужно передать, y fm.getAscent()
где fm
находится текущий FontMetrics
объект. Смотрите пример ниже.
Этот снимок экрана:
создается этим кодом:
FontMetrics fm = g.getFontMetrics();
g.setColor(Color.RED);
g.drawLine(10, 10, 100, 10);
g.setColor(Color.BLACK);
g.drawString("Hello frog", 10, 10 fm.getAscent());
Ответ №2:
Вы можете получить FontMetrics
объект используемого шрифта и определить подъем, используя getAscent()
или getMaxAscent()
, в зависимости от того, что подходит в вашем случае.
Ответ №3:
Добавьте FontMetrics.getAscent()
в позицию y перед рендерингом.
Комментарии:
1. Разве он не должен добавлять это значение к y перед рисованием строки?