1

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

我正在使用Digital 7 Mono字体。

你知道我在哪里可以找到另一种字体,它将是等宽字体和液晶显示器(我想只输入数字)?

4

1 回答 1

2

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

呈现文本所需的基本方法是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);
}

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

于 2010-05-08T17:19:42.520 回答