在 Java 中计算字符串的显示宽度
2022-08-31 09:46:08
如何在Java中计算字符串的长度(以像素为单位)?
最好不要使用秋千。
编辑:我想使用Java2D中的drawString()绘制字符串,并使用长度进行自动换行。
如何在Java中计算字符串的长度(以像素为单位)?
最好不要使用秋千。
编辑:我想使用Java2D中的drawString()绘制字符串,并使用长度进行自动换行。
如果您只想使用AWT,则使用Graphics.getFontMetrics
(可以选择指定字体,对于非默认字体)来获取,然后使用FontMetrics.stringWidth
来查找指定字符串的宽度。FontMetrics
例如,如果您有一个名为 的变量,则可以使用:Graphics
g
int width = g.getFontMetrics().stringWidth(text);
对于其他工具包,您需要向我们提供更多信息 - 它始终依赖于工具包。
它并不总是需要依赖于工具包,或者并不总是需要使用FontMetrics方法,因为它需要首先获得Web容器或无外设环境中不存在的图形对象。
我已经在Web servlet中对此进行了测试,它确实计算了文本宽度。
import java.awt.Font;
import java.awt.font.FontRenderContext;
import java.awt.geom.AffineTransform;
...
String text = "Hello World";
AffineTransform affinetransform = new AffineTransform();
FontRenderContext frc = new FontRenderContext(affinetransform,true,true);
Font font = new Font("Tahoma", Font.PLAIN, 12);
int textwidth = (int)(font.getStringBounds(text, frc).getWidth());
int textheight = (int)(font.getStringBounds(text, frc).getHeight());
向这些维度添加必要的值以创建任何所需的边距。