首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FontMetrics.stringWidth()和FontMetrics.getStringBounds()有什么区别?

FontMetrics.stringWidth()和FontMetrics.getStringBounds()有什么区别?
EN

Stack Overflow用户
提问于 2011-08-15 09:56:05
回答 2查看 3.8K关注 0票数 5

我需要找到在屏幕上绘制的文本的宽度。This thread建议FontMetrics.stringWidth()有时不会像FontMetrics.getStringBounds()那样准确。

有没有人知道这是不是正确的,如果是正确的,这种差异在什么情况下是可见的?FontMetrics.stringWidth()似乎使用得更频繁,包括在SwingUtilities.computeStringWidth()中。此外,明显的优点是它不需要图形对象,但这一点本身结合在图形对象中定义了抗锯齿和类似设置的事实可能解释了为什么FontMetrics.getStringBounds()可能更准确。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-08-15 10:05:25

getStringBounds有更多的信息要处理,因为它被传递给了Graphics。它可以用它来计算子像素字形的位置,并说明反走样对字形大小的影响。来自FontRenderContext的文档

由于四舍五入到像素边界,应用程序指定的

抗锯齿和分数度量也会影响字符的大小。

票数 6
EN

Stack Overflow用户

发布于 2011-08-15 10:00:33

我想答案就在你的问题里。在javadoc中:

stringWidth

请注意,此方法返回的总前进宽度没有考虑呈现上下文。因此,抗锯齿和分数指标提示可能会影响预付款的价值。启用抗锯齿和分数度量提示时,请使用getStringBounds(字符串、图形)而不是此方法。字符串的前进不一定是其字符前进的总和。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7061060

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档