通常,我会获得类似这样的图形实例:
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = img.createGraphics();
但是,在我正在处理的当前项目中,上面的width
和height
变量取决于稍后将被绘制到图形实例上的多个文本片段的大小。但是,为了获得正在使用的字体的尺寸,我通常会使用从图形对象中获得的FontMetrics。
FontMetrics metrics = g.getFontMetrics();
所以,我有一个讨厌的小依赖循环。在我知道文本的大小之前我无法创建图形对象,在得到图形对象之前我无法知道文本的大小。一种解决方案是首先创建另一个BufferedImage
/ Graphics
对,以获得我需要的FontMetrics
实例,但这似乎没必要。
答案 0 :(得分:0)
也许您可以尝试从其他地方获取Graphics实例。例如,将在其上绘制图像的面板。然后,您可以使用该Graphic实例获取FontMetrics实例。