Java 是否有一种字体,每个水平字母使用相同数量的像素?

Java 是否有一种字体,每个水平字母使用相同数量的像素?,java,fonts,Java,Fonts,我正在使用缓冲图像和(Graphics).drawLine和drawString方法来手动将内容绘制到我的游戏中,并且我实现了一个high scores类,该类通过用户键入的键进行输入。我在图形中使用drawLine方法手动创建了一个闪烁的光标,但我注意到的每个字母都不一定与前面的字母对齐。例如,字母M更大。是否有一种字体在水平方向上每个字母的像素数相同?否则,我将不得不计算每个字母输入的不同像素数,这将花费很长时间 换句话说,Java是否使用一种字体,其键入的字符将按照其后面的不可见网格均匀对

我正在使用缓冲图像和(Graphics).drawLine和drawString方法来手动将内容绘制到我的游戏中,并且我实现了一个high scores类,该类通过用户键入的键进行输入。我在图形中使用drawLine方法手动创建了一个闪烁的光标,但我注意到的每个字母都不一定与前面的字母对齐。例如,字母M更大。是否有一种字体在水平方向上每个字母的像素数相同?否则,我将不得不计算每个字母输入的不同像素数,这将花费很长时间

换句话说,Java是否使用一种字体,其键入的字符将按照其后面的不可见网格均匀对齐?感谢您的帮助

所有Java发行版都必须支持五种字体(实际上是字体系列):

Logical fonts are the five font families defined by the Java platform 
which must be supported by any Java runtime environment: Serif, SansSerif, 
Monospaced, Dialog, and DialogInput. 
你想要单间隔的。您可以按名称要求使用其他字体(例如LucidaConsole,这是一种比通常的Courier字体更好的单空白字体),但如果您要求使用这五种字体中的一种,您肯定会得到一种有效的字体

例如,这些工作(或至少返回字体):

如果要查看系统上的所有字体,可以使用以下选项:

  String[] fontList = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();

你正在寻找任何固定宽度的字体,漂亮!非常感谢。除了使用字体类型,还可以选择使用font.MONOSPACED作为字体“type”。我肯定也有类似的字体类型,但我喜欢font.MONOSPACED字体的外观,这样就行了。
  String[] fontList = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();