JTextPane と JButton を使用しています
ボタンをクリックすると、JTextPane のすべての文字の下にドットが表示されることを願っています
これを行う方法はありますか?
大きな問題は、すべての文字の下にドットを追加する方法です:(
http://java-sl.com/tip_colored_strikethrough.html色付きの取り消し線の例を使用できます。
必要なのは、文字の下に線を引くことだけです。インスタンスに設定Stroke
するだけです。Graphics2D
(シーBasicStroke
アンドダッシュパターン)
テキスト コンポーネントの文字間隔を処理する を使用しjavax.swing.text.DefaultHighlighter
て、そのコンポーネントの背景の描画を行うことができます。
public class DotHighlighter extends DefaultHighlighter {
// implementation
}
カスタム ハイライターの実装は中程度の作業量ですが、下線付きハイライター実装の優れたコード例を次に示します。ドットを描画するように変更できるはずです。
等幅フォントを使用していますか? その場合、新しいラベルを作成し、ピリオドのみで構成された文字列 (元のラベルの文字列と同じ長さ) を表示し、そのラベルを最初のラベルより少し下に表示することができます。
IE の場合、ラベルに が表示されている場合、2446
5 ピクセルまたは 10 ピクセル低い 2 番目のラベルを作成できます....
。
繰り返しますが、これは等幅フォントでのみ機能します。他のフォントでも可能ですが、より複雑な解決策が必要になります (各文字をループし、その場所を見つけ、その下にドットを表示することを管理します)。 、 私は信じている。