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