2016-06-27 2 views
0

私のアプリケーションにJTextPaneがあり、さまざまな単語/文字のスタイルを用意しています。これらのスタイルはsetCharacterAttributesによって適用されます。今ではいくつかのスタイルの背景をスタイルする予定です:スタイルが背景(灰色)を定義していて、コーナーを丸くしたい場合(つまり、3pxの丸いコーナー)。JTextPane:/のsetCharacterAttributesのレンダラーは何ですか?

setCharacterAttributes内で使用される特別なレンダラーを追加する方法はありますか?または、pane.getHighlighter().addHighlight(...)HighlightPainterを追加することをおすすめしますか?

+0

文字のコーナーを柔らかくする予定ですか? – Sharcoux

+0

@Sharcoux:いいえ、私は黒いフォントで背景(灰色と言う)を持つ予定です。背景には美しい丸いコーナーがあるはずです。 – Markus

答えて

1

あなたの質問はあまり明確ではありませんが、正しく理解すれば、文字の背景プロパティのデフォルトの動作をカスタマイズするつもりです。あなたは2つのアプローチを説明し、1つはおそらく他のアプローチよりはるかに簡単です。

1)文字属性(複雑なもの)に基づいて:javax.swing.text.GlyphViewpaintメソッドをオーバーライドすることで、動作を定義する必要があります。次に、変更を考慮に入れるためにEditorKitのViewFactoryを変更する必要があります。私はこのアプローチをお勧めしません。

2)ハイライト(より簡単なもの)に基づいて:あなたが望むように円の枠をペイントする新しいjavax.swing.text.Highlighter.HighlightPainterを定義する必要があります。次に、背景が設定されているすべてのテキストセットを見つける必要があります。背景を削除し、代わりにカスタムのハイライトを追加します。プロセスを最適化することはできますが、すでにこの部分があると思います。

+0

あなたの答えをありがとう。私は第2の解決策に行くつもりです。最初の解決策は扱いにくいものの、非常に専門的です。次回は、画像を追加しようとします。 – Markus

関連する問題