Java:如何从上升线绘制String()

发布于 2024-12-14 09:58:57 字数 220 浏览 2 评论 0原文

我正在使用Java2D 库的drawString(...) 函数在屏幕上显示一些图形文本。

参考这篇文章中的图,我希望我的字符串是从上升线而不是基线绘制。简而言之,有什么方法可以计算上升线和基线的黑白高度吗?

I am displaying some graphics text on Screen by using the drawString(. . .) function of Java2D Library.

Refering to the figure in this article i want my string to be drawn from Ascender Line rather than BaseLine. In simple words is there any way to calculate the height b/w ascender line and Base Line?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

别挽留 2024-12-21 09:58:57

普通的drawString会将基线与y参数对齐。如果要绘制字符串以使上升线与 y 对齐,则需要传递 y + fm.getAscent() where 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());

A normal drawString will align the base-line with the y-argument. If you want to draw the string so that the ascent-line is align with y, you need to pass y + fm.getAscent() where fm is the current FontMetrics object. See example below.

This screen shot:

enter image description here

is produced by this code:

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());
℉服软 2024-12-21 09:58:57

您可以获得 FontMetrics 所使用字体的对象,并使用 getAscent()getMaxAscent() 确定上升,以适合您的情况为准。

You can get the FontMetrics object of the used font, and determine the ascent using getAscent() or getMaxAscent(), whichever is appropriate in your case.

清风挽心 2024-12-21 09:58:57

在渲染之前将 FontMetrics.getAscent() 添加到 y 位置。

Add FontMetrics.getAscent() to the y position before rendering.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文