Java中字符串长度(以像素为单位

APe*_*son 12 java string fonts awt fontmetrics

有没有办法在给定某个java.awt.Font对象的情况下计算字符串的长度(不使用任何GUI组件)?

Bri*_*ian 10

不使用任何GUI组件?

这取决于你在这里的意思.我假设你的意思是你想要在没有收到的情况下这样做HeadlessException.

最好的方法是用BufferedImage.AFAIK,这不会抛出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");
Run Code Online (Sandbox Code Playgroud)

除了使用这样的东西,我认为你不能.您需要一个图形上下文才能创建FontMetrics并提供字体大小信息.