Java 中的字符串长度(以像素为单位)
2022-09-04 20:55:48
有没有办法计算字符串的长度(以像素为单位),给定某个对象,不使用任何GUI组件?java.awt.Font
有没有办法计算字符串的长度(以像素为单位),给定某个对象,不使用任何GUI组件?java.awt.Font
不使用任何 GUI 组件?
这取决于你在这里的意思。我假设你的意思是你想在没有收到.HeadlessException
最好的方法是使用 .AFAIK,这不会抛出一个:BufferedImage
HeadlessException
Font font = ... ;
BufferedImage img = new BufferedImage(1, 1, BufferedImage.TYPE_INT_ARGB);
FontMetrics fm = img.getGraphics().getFontMetrics(font);
int width = fm.stringWidth("Your string");
除了使用这样的东西,我认为你不能。您需要一个图形上下文才能创建并为您提供字体大小信息。FontMetrics
您可以使用该对象来获取字体边界(包括宽度):Graphics2D
Graphics2D g2d = ...
Font font = ...
Rectangle2D f = font.getStringBounds("hello world!", g2d.getFontRenderContext());
但这取决于您将如何获取 Graphics2D
对象(例如,从图像
中获取)。