【发布时间】:2015-03-22 09:52:02
【问题描述】:
我有一个名为 GUIText 的对象,它具有字符串文本、字体、字体样式、颜色和装饰(下划线、上划线、删除线)。我可以使用这种方法来获取 GUIText 的宽度,根据它的文本和字体:
public int getWidth() {
return Display.getCanvas().getFontMetrics(this.font.toJavaFont()).stringWidth(
this.text);
}
(Display.getCanvas() 返回一个 JComponent)。
我知道 getFontMetrics().getHeight(),但这会返回一个太大的数字。实际上,font.getSize() 比 getFontMetrics().getHeight() 更接近实际高度,但并不准确。我需要知道这一点,这样我才能在 GUIText 上画一条线以进行上划线装饰。
【问题讨论】:
-
FontMetrics#getHeight 将返回字体的总高度(从字体的最高点到最低点),如果没有,这通常意味着字体没有提供正确的度量信息
-
您还应该查看Working with text APIs,了解有关如何测量字体和渲染器的更多信息