如何在等宽模式下用Java(使用Graphics2d)绘制String?我有一个看起来像LCD屏幕字体的字体,我想画一些像LCD标签。
我正在使用Digital 7 Mono字体。
你知道我在哪里可以找到另一种将是monospace和lcd的字体(我只想输入数字)吗?
答案 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);
}