オブジェクトがあり、そのメソッドGraphics2D
を使用したい。drawString
そのメソッドを呼び出して、文字列と (x, y) の位置を渡すことができます。これは非常に便利です。ただし、Font オブジェクトを期待するメソッドGraphics2D
を使用して、オブジェクトのフォントを変更することもできます。setFont
これもとてもいいです。残念ながら、Font オブジェクトに複数のフォント テキストを定義するつもりなので、これでは十分ではありません。
これは、Font オブジェクトに転送したいテキスト表現です。
font-family:"Lucida Grande", "Lucida Sans Unicode", Verdana, Arial, Helvetica, sans-serif
インターフェイスを使用して問題を解決できる可能性があることをAttributedCharacterIterator
確認しましたが、どのように使用すればよいかわかりません。AttributedString
のセットを持つという実装が実際にあることを見てきましたが、オブジェクトが複数のフォントを認識して適用するように、 のコンストラクターで使用できるオブジェクトAttributes
を作成する方法がわかりません。私が電話したとき。AttributedString
Font
Graphics2D
drawString
編集:
public static AttributedString getFontByAttributes(String atts, String value)
{
String[] attributes = atts.split(",");
AttributedString attributedString = new AttributedString(value);
for (int attributeIndex = 0; attributeIndex < attributes.length; attributeIndex++)
{
attributedString.addAttribute(TextAttribute.FONT, attributes[attributeIndex].trim());
}
return attributedString;
}
//...
public void drawTitle(Graphics2D g2d)
{
//...
g2d.drawString(getFontByAttributes(Settings.titleFontString, Settings.title).getIterator(), Settings.headerWidthOffset, Settings.headerHeightOffset);
//...
}
上記のコードでは、このアプリケーションをテストしたシステムで知られている Andale Mono を使用して試しましたが、生成されたグラフィックスでは、テキストは Times New Roman フォントで描画されます。何かが間違っています。残念ながら、何が欠けているのかわかりません。