给定一个不使用任何 GUI 组件的特定 java.awt.Font
对象,是否有一种方法可以计算字符串的长度(以像素为单位)?
最佳答案
that does not use any GUI components?
这取决于你在这里的意思。我假设您的意思是您想在不收到 HeadlessException
的情况下执行此操作。
最好的方法是使用 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
并为您提供字体大小信息。
关于java - Java 中的字符串长度(以像素为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13345712/