1

次のように java.awt.Font の属性に Color を追加しようとしました。

font.getAttributes().put(TextAttribute.FOREGROUND, jColorChooser.getColor());

しかし、私はエラーが発生します

Map 型の put(TextAttribute, capture#12-of ?) メソッドは、引数 (TextAttribute, Color) には適用されません。

フォントAPIは言う

このフォントは、TextAttribute で定義されたキーのみを属性として認識し、FOREGROUNDTextAttributeに存在します

私は何か間違ったことをしていますか?

4

2 に答える 2

4

実際、Swing フォントは不変であると想定されているため、フォントを変更するためにその属性を直接変更することはできません。

結果として、Font#deriveFont(Map)新しい属性セットでそのメソッドを呼び出す必要があります。これにより、指定された属性セットを持つ新しいフォントが作成され、結果として新しい色が作成されます。

于 2010-09-21T14:21:54.177 に答える