我正在创建一个游戏,我想使用Java的Font.MONOSPACED
字体,因为它易于使用(即使它看起来很恶心)。问题是我不知道字体宽高比,这是非常重要的。搜索一段时间后我在网上找不到答案。
如果有人知道或如何找到它,我将非常感激。
答案 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
方法中获得很多其他信息 - 检查出来。