Java“MONOSPACED”字体宽度

时间:2014-07-02 13:29:30

标签: java fonts monospace

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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

这样做,你可以得到:(所有从上面链接到文档)

任何单个字符的宽度:

  

charWidth(char ch)            返回此Font中指定字符的advance width。

字符串的宽度:

  

stringWidth(String str)             返回在此Font中显示指定String的总提前宽度。

一条线的高度

  

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

我假设你可以弄清楚如何从上面得到宽高比,你可以从不同的FontMetrics方法中获得很多其他信息 - 检查出来。