1

通常、次のようなグラフィックインスタンスを取得します。

BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
Graphics2D g = img.createGraphics();

ただし、私が取り組んでいる現在のプロジェクトでは、上記の変数widthheight変数は、後でグラフィックスインスタンスに描画される多数のテキストフラグメントのサイズに依存します。ただし、使用されているフォントのサイズを取得するには、通常、グラフィックスオブジェクトから取得したFontMetricsを使用します。

FontMetrics metrics = g.getFontMetrics();

だから、私は厄介な小さな依存サイクルを持っています。テキストのサイズがわかるまでグラフィックスオブジェクトを作成できません。また、グラフィックスオブジェクトができるまでテキストのサイズもわかりません。BufferedImage1つの解決策は、必要なインスタンスを取得するために最初に別の/Graphicsペアを作成するFontMetricsことですが、これは不要のようです。

  • それで、もっと良い方法はありますか?
  • または、フォントの幅、高さなどのプロパティが、テキストを描画する対象(グラフィック、コンポーネントなど)に何らかの形で依存している場合がありますか?
4

1 に答える 1

0

たぶん、他の場所から Graphics インスタンスを取得しようとすることができます。たとえば、画像がペイントされるパネルです。次に、その Graphic インスタンスを使用して FontMetrics インスタンスを取得できます。

于 2010-05-06T03:07:13.200 に答える