java - 找到字体真实边界的最佳方法

标签 java swing graphics2d fontmetrics swingutilities

我正在寻找一种方法来查找渲染文本的边界,并遇到了 FontMetrics getStringBounds 方法。这似乎忽略了某些字体的下降并具有夸张的上升,因此它返回的边界不允许我正确垂直对齐。我更深入地挖掘了一下,发现 GlyphVector.getPixelBounds() 似乎可以做我想做的事情,但我不知道使用它是否会出现一些问题。

我写了一个小程序http://breadmilkbeercigarettes.com/bmbc/shelves/users/bbb/src/java/applet/glyphvector.html显示两者之间的差异,对于我的系统字体来说,它似乎返回了正确的边界。有谁知道这是否是一种昂贵的方法,或者使用它是否存在其他可能的陷阱? FontMetrics 似乎从来没有对我正常工作过。或者也许我对它的期望是错误的。

谢谢, BBB

最佳答案

GlyphVector 有方法

public abstract Shape getOutline()

关于java - 找到字体真实边界的最佳方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9287141/

相关文章:

java - Eclipse 中 C 代码的语法树

java - Hibernate:更新而不是插入

java - 模态无父 JDialog 不抢焦点

java - 如何在java中向应用程序顶部绘制一个矩形

java - Java 6 之后 Graphics2D drawString 产生无意义字符

Java:使用Graphics2d在圆上均匀绘制点

java - 线程通过调用interrupt()被中断,但是Thread.isInterrupted()返回false

java - 如何管理多个Windows系统-Java(Swing)

java - 如何在 JScrollPane 中将组件居中?

java - java中通过复制方法缩放图像