1

GraphicsJavaでインスタンスなしでテキストアドバンス(stringWidth)を取得するには?

ドキュメントの例では、stringWidth()は から取得されFontMetricsFontMetricsは から取得されGraphicsます。

なしで同じものを入手することは可能Graphicsですか?

以下の注記では、Graphicsそれが保持されているため必要であると言われていますFontRenderContext。しかし、私は持っていますがFontRenderContext、持っていませんGraphics

だから、私はFontRenderContextなしで持っているとしGraphicsます。どうすれば取得できstringWidth()ますか?

4

1 に答える 1

5

FontRenderContext直接構築された A は実際のグラフィックス デバイスを表していない可能性が高く、予期しない結果や不正確な結果につながる可能性があります」が、ここここTextLayoutに示すように、のインスタンスから有用なメトリックを取得できます。

FontRenderContext frc = new FontRenderContext(null, false, false);
TextLayout layout = new TextLayout(text, font, frc);
System.out.println(layout.getBounds());

画像

于 2015-09-28T09:45:51.313 に答える