1

色付きのテキストを表示する JTextPane があります。次のコードを使用して、JTextPane からテキストを取得します。

String temp = pane.getDocument().getText(0,pane.getDocument().getLength());

ただし、一時変数のコンテンツを再度ペインに設定しようとすると、

pane.select(0,pane.getDocument().getLength());
pane.replaceSelection(temp);

このようにして、色を失い、白いテキストを取得します。とにかく、コンテンツをクリップボードにコピーせずにテキストの色を維持できる場所はありますか?

助けてください。

4

1 に答える 1

2

実際には、使用する EditorKit に依存します。最初の部分は、選択されたフラグメントのテキスト (スタイル情報付き) を返します。たとえば、RTFEditorKit では、ドキュメントのフラグメントの rtf コンテンツになります。

2番目の部分は正しくありません。置換選択はコンテンツを適切に処理できません。RTFEditorKit の場合は、書式設定がペインに挿入されたすべてのテキストになると思います。

私は使うだろう

pane.setText(temp);

代わりは。スタイル付きフラグメントを挿入する必要がある場合は、呼び出しでkit.read(...)を渡しますtemp

デフォルトの RTFEditorKit の代替としてキットを試して、何が起こるかを確認できます

更新: 申し訳ありませんが、元のコメントは少し間違っていました。コードは

 pane.getEditorKit().read(
      new StringReader(temp), 
      pane.getDocument(), 
      pane.getDocument().getLength())
于 2014-05-19T06:55:51.213 に答える