0

テキストを HTML として出力する JTextPane を使用してテキスト エディタを作成しようとしています。テキストを太字にしたり、色を付けたり、揃えたりするオプションを含めたいです。太字と太字が混在するテキストの選択範囲の色を変更する際に問題が発生しています。たとえば、エディターに「太字テキストではなく太字テキスト」というテキストがあり、両方の単語を強調表示してテキストの色を変更しようとすると、色が変更され、2 番目のテキストを残す代わりにすべてのテキストが太字になります。大胆ではない単語。setCharacterAttributes に関係があるのか​​、それともテキストを html として出力することに問題があるのか​​ 、この問題がどこから来ているのかわかりません。テキストを太字にする私のコードの一部を次に示します。

    MutableAttributeSet attrs = pane.getInputAttributes();
    StyleConstants.setBold(attrs, bold); 
    pane.getStyledDocument().setCharacterAttributes(p.getSelectionStart(),len,attrs,false);

テキストの色を変更する前後の html 出力の例を次に示します。これはbodyタグの中身です

前: 太字ではなく太字

色を赤に変更した後: 太字ではなく太字のテキスト

そして、選択の最初の単語が太字であるかどうかに関係があります。同じ例を実行した場合、2 番目の部分が太字で、最初の部分が太字でない場合、問題なく動作します。したがって、テキスト選択の先頭が太字である場合と関係があります。

4

2 に答える 2

2

テキストを「太字にする」ことができるアクションはありますか?

のような適切SimpleAttributeSetなものを作成して適用しnormalます。ここに表示されます。

画像

于 2013-09-18T18:55:06.910 に答える
2

テキストを太字にする私のコードの一部を次に示します。

そのコードがどのように使用されるかのコンテキストがわかりません。しかし、これを行うより良い方法は、にあるデフォルトの Bold Action を使用することですStyledEditorKit

エディターの簡単な例については、Text Component Featuresに関する Swing チュートリアルを参照してください。この例では JTextPane を使用していますが、メニュー項目を作成するための概念は同じです。

于 2013-09-18T16:43:28.223 に答える