0

我正在创建一个游戏,我想使用 Java 的Font.MONOSPACED字体,因为它易于使用(即使它看起来很恶心)。问题是我不知道字体的宽高比,这很重要。我在网上搜索了一段时间后找不到答案。

如果有人知道它或如何找到它,我将非常感激。

4

1 回答 1

0

java.awt.FontMetrics将在这里成为你的朋友。

Graphics2d您可以通过对象访问它:

Graphics2D gfx = ...;
gfx.setFont(...); // select your preferred font, monospaced or otherwise
FontMetrics metrics = gfx.getFontMetrics();

这样做你可以得到:(全部来自上面的文档链接)

任何单个字符的宽度:

charWidth(char ch) 返回此 Font 中指定字符的前进宽度。

字符串的宽度:

stringWidth(String str) 返回在此字体中显示指定字符串的总前进宽度。

一条线的高度

getHeight() 获取此字体中一行文本的标准高度。

我假设您可以从上面弄清楚如何获得宽高比,并且您可以从不同的FontMetrics方法中获得许多其他信息 - 看看吧。

于 2014-07-02T13:35:24.930 回答