在Java中,如何在没有图形的情况下获得文本高级(stringWidth)?

在Java中,如何在没有图形的情况下获得文本高级(stringWidth)?,java,swing,awt,fontmetrics,Java,Swing,Awt,Fontmetrics,如何在没有Java中的图形实例的情况下获得文本高级(stringWidth) 在中,stringWidth()取自FontMetrics,而FontMetrics取自Graphics 是否可以在不使用图形的情况下获得相同的结果 在下面的注释中,说明需要图形,因为它包含FontRenderContext。但是我有FontRenderContext,只是没有图形 因此,假设我有FontRenderContext而没有图形。那么如何获取stringWidth()?虽然“直接构造的很可能不代表任何实际图

如何在没有Java中的
图形
实例的情况下获得文本高级(stringWidth)

在中,
stringWidth()
取自
FontMetrics
,而
FontMetrics
取自
Graphics

是否可以在不使用
图形的情况下获得相同的结果

在下面的注释中,说明需要
图形
,因为它包含
FontRenderContext
。但是我有
FontRenderContext
,只是没有
图形

因此,假设我有
FontRenderContext
而没有
图形
。那么如何获取
stringWidth()

虽然“直接构造的很可能不代表任何实际图形设备,并可能导致意外或不正确的结果”,但您可以从的实例中获取有用的度量,如图和所示

虽然“直接构造的很可能不代表任何实际的图形设备,并可能导致意外或不正确的结果”,但您可以从的实例中获得有用的度量,如图和所示


为什么“没有图形的FontRenderContext”?这听起来很奇怪。你能发布你的代码吗?基本上,你不能。必要时,您需要一个
图形
上下文,因为它定义了字体将呈现到的属性,并将影响计算的方式made@Tunaki我已经用
新建FontRenderContext(null,Isatariased,usesFractionalMetrics)创建了frc
为什么“没有图形的FontRenderContext”?这听起来很奇怪。你能发布你的代码吗?基本上,你不能。必要时,您需要一个
图形
上下文,因为它定义了字体将呈现到的属性,并将影响计算的方式made@Tunaki我已使用
新建FontRenderContext(null、Isatariased、usesFractionalMetrics)创建了frc
FontRenderContext frc = new FontRenderContext(null, false, false);
TextLayout layout = new TextLayout(text, font, frc);
System.out.println(layout.getBounds());