java - 图形+java中定位字符串

标签 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);

其中 b 是一个矩形。

最佳答案

您可以使用 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));

关于java - 图形+java中定位字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5378052/

相关文章:

java - 无法在java中生成完整数据到PDF文件

java - 动态 JPanel 调整大小问题

java - 在一个路径中一起解析符号链接(symbolic link)和 ".."

java - 使用 Lucene 过滤带有数字的单词并检索 2-gram 和 1-gram

java - 返回 ?扩展类型

Java http 调用返回响应代码 : 501

java - 键名中带有破折号的 JSON 响应

java - 基于 Swing 的应用程序的 Eclipse 或 Netbeans?

java - 最大化 JMenuBar 中的 JInternalFrame

java - 使用 Java 图形 API 绘制图层