在图形+ java中定位字符串

4 java swing

我想在图形图形中写一个整数,并希望它定位在中心.

有没有办法这样做?

目前我正在写这个不好的:

Font font = new Font("Arial", Font.BOLD, 20);

g.setFont(font);
g.setColor(this.color);
g.fillOval(b.x, b.y, b.width, b.height);
g.setColor(Color.black);
g.drawString("1", b.x + b.width/2 , b.y+ b.height/2);
Run Code Online (Sandbox Code Playgroud)

其中b是一个矩形.

Ern*_*ill 5

您可以使用FontMetrics类,以确定你要显示的字符串的确切大小,然后从中心点减去一半的X和Y尺寸,并绘制它在那里,就像这样:

    FontMetrics fm = g.getFontMetrics();
    Rectangle2D rect = fm.getStringBounds("1", g);
    g.drawString("1", (int) (b.x + b.width/2 - rect.getWidth()/2),
                      (int) (b.y + b.height/2 + rect.getHeight()/2));
Run Code Online (Sandbox Code Playgroud)

  • 使用g.getFontMetrics(). (2认同)