Java monospace绘制字符串

时间:2010-05-08 11:39:44

标签: java swing fonts true-type-fonts lcd

如何在等宽模式下用Java(使用Graphics2d)绘制String?我有一个看起来像LCD屏幕字体的字体,我想画一些像LCD标签。

我正在使用Digital 7 Mono字体。

你知道我在哪里可以找到另一种将是monospace和lcd的字体(我只想输入数字)吗?

1 个答案:

答案 0 :(得分:2)

  

如何在等宽模式下用Java(使用Graphics2d)绘制String?

呈现文本所需的基本方法是drawString(),如下所述。没有“等宽模式”,本身,但即使按比例间隔的字体通常也使用数字字形的恒定宽度。

private static final Font font = new Font("Monospaced", Font.PLAIN, 32);
private static final String s = "12:34";
...
@Override
protected void paintComponent(Graphics g) {
    super.paintComponent(g);
    g.setFont(font);
    int xx = this.getWidth();
    int yy = this.getHeight();
    int w2 = g.getFontMetrics().stringWidth(s) / 2;
    int h2 = g.getFontMetrics().getDescent();
    g.setColor(Color.green);
    g.drawString(s, xx / 2 - w2, yy / 2 + h2);
}

有一个完整的示例here,您可以使用布局管理器扩展合适的JComponent来控制定位,如here所示。