Java: как выполнить drawString () из восходящей строки

#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 перед рисованием строки?