Java – 没有图形的FontMetrics

如何在不使用Graphics的情况下获取FontMetrics? 我想在构造函数中获取FontMetrics,现在我这样做:

BufferedImage bi = new BufferedImage(5, 5, BufferedImage.TYPE_INT_RGB); FontMetrics fm = bi.getGraphics().getFontMetrics(font); int width = fm.stringWidth(pattern); int height = fm.getHeight(); 

嗯……你需要图形才能获得FontMetrics是合乎逻辑的。 字体高度,宽度等可以在各种显示器上不同。

如果您有一些Component,可以使用它来获取FontMetrics:

 component.getFontMetrics(font); 

不,您不一定需要获取/使用图形对象:

 Font font = new Font("Helvetica",Font.PLAIN,12); Canvas c = new Canvas(); FontMetrics fm = c.getFontMetrics(font); 

如果现在调用c.getGraphics() ,它将返回null。 这个(canvas)也可以在无头模式下工作。