Java等宽绘制字符串

发布于 2024-08-31 18:27:30 字数 256 浏览 8 评论 0原文

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

我正在使用 Digital 7 Mono 字体。

你知道我在哪里可以找到另一种等宽和液晶的字体(我只想输入数字)吗?

How can I draw a String in Java (using Graphics2d) in monospace mode? I have a font that looks like LCD screen font, and I want to draw something like LCD label.

I am using Digital 7 Mono font.

Do you know where I can find another font that will be monospace and lcd (I wan to type only digitals)?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

尘曦 2024-09-07 18:27:31

如何在等宽模式下用 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 来使用布局管理器控制定位,如 所示在这里

How can I draw a String in Java (using Graphics2d) in monospace mode?

The essential method needed to render text is drawString(), as outlined below. There is no "monospace mode", per se, but even proportionally spaced fonts typically use a constant width for digit glyphs .

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);
}

There's a complete example here, and you can extend a suitable JComponent to control positioning using a layout manager, as seen here.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文