gpt4 book ai didi

Java 小程序 : How do I draw a string in a square shape?

转载 作者:行者123 更新时间:2023-11-30 04:28:56 25 4
gpt4 key购买 nike

我将如何绘制一个字符串/字符数组,以便将其写成正方形,并且字符之间的间距相等?阵列越大,正方形越大。有没有办法将字符数除以长度并获得矩形中的某些坐标?

我考虑过使用 for 循环遍历数组并获取字符串的整个长度。然后将其设为我的方形边缘的长度。但我无法想象如何做到。

最佳答案

使用getFontMetrics()找出字符串将占用多少空间,然后逐个字符地绘制,添加所需的额外空间。这是代码:

import java.awt.*;

// ...

@Override
public void paint(Graphics g) {
String testString = "The quick brown fox jumps.";
Rectangle testRectangle = new Rectangle(10, 50, 200, 20);

Graphics2D g2d = (Graphics2D)g;
g2d.setColor(Color.BLACK);
g2d.draw(testRectangle);

FontMetrics fm = g2d.getFontMetrics();
int stringWidth = fm.stringWidth(testString);
int extraSpace = (testRectangle.width - stringWidth) / (testString.length() - 1);
int x = testRectangle.x;
int y = testRectangle.y + fm.getAscent();
for (int index = 0; index < testString.length(); index++) {
char c = testString.charAt(index);
g2d.drawString(String.valueOf(c), x, y);
x += fm.charWidth(c) + extraSpace;
}
}

这就是它的样子:

enter image description here

为了获得更准确的结果,Graphics2D还允许您使用float而不是int进行计算。

关于Java 小程序 : How do I draw a string in a square shape?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15117983/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com