如何在没有Java的图形的情况下获得文本超前(stringWidth)?

Suz*_*ioc 1 java swing awt fontmetrics

如何在没有GraphicsJava实例的情况下获得文本超前(stringWidth)?

doc示例中,stringWidth()取自FontMetrics,而FontMetrics取自Graphics.

有没有可能获得相同的Graphics

在下面的注释中说,这Graphics是必需的,因为它成立FontRenderContext.但我有FontRenderContext,只是没有Graphics.

所以,假设我FontRenderContext没有Graphics.那我该怎么办stringWidth()

tra*_*god 5

虽然" FontRenderContext直接构造的A 很可能不代表任何实际的图形设备,并且可能导致意外或不正确的结果",但您可以从此处此处TextLayout所示的实例获取有用的指标.

FontRenderContext frc = new FontRenderContext(null, false, false);
TextLayout layout = new TextLayout(text, font, frc);
System.out.println(layout.getBounds());
Run Code Online (Sandbox Code Playgroud)

图片

  • 另请参阅此相关[方法](http://stackoverflow.com/q/10677876/230513). (3认同)