通常,我会获得一个图形实例,如下所示:
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = img.createGraphics();但是,在我正在处理的当前项目中,上面的width和height变量取决于许多文本片段的大小,这些片段稍后将被绘制到图形实例上。但是,为了获得正在使用的字体的大小,我通常使用从图形对象获得的FontMetrics。
FontMetrics metrics = g.getFontMetrics();所以,我有一个讨厌的小依赖周期。我不能创建图形对象直到我知道文本的大小,我不能知道文本的大小直到我有一个图形对象。一种解决方案是先创建另一个BufferedImage/Graphics对,以获得我需要的FontMetrics实例,但这似乎没有必要。
为基础。
发布于 2010-05-06 03:07:13
也许您可以尝试从其他地方获取Graphics实例。例如,将在其上绘制图像的面板。然后您可以使用该图形实例获得一个FontMetrics实例。
https://stackoverflow.com/questions/2777535
复制相似问题