0

多くの描画操作を行うカスタム JComponentがあります。

テキスト パラグラフ用の drawStrings も含まれていますが、テキストを (jtextpane または別の RTF エディターを使用した別のウィンドウで) 書式設定し (太字、フォント サイズ、整列、フォント色、リスト)、この書式設定されたテキストを独自のコンポーネント。

画像でいっぱいの大きなjcomponentがあると、オーバーフローエラー(RAM)が発生するため、bufferedimagesなしでそれを行いたいと思います

AttributedString のようなものは機能する可能性がありますが、どのように?

RTF-Textを Jtextpane から取得する方法 (または、より良いエディターがある場合は教えてください) と"paintComponent(Graphics g)" メソッドで描画する方法がよくわかりません。

エディターは、プレゼンテーションではなく、テキストを簡単にフォーマットするために使用されます (これは私自身のコンポーネントで行われます)。

誰でも私を助けてもらえますか?


ご協力いただきありがとうございます、

だから私は AttributeString を作成し、RTF フォーマットを適用しますか?

RTF 情報を適切な AttributedString に押し出す方法を知っていますか? たとえば、フォーマットされたテキストを次のような AttributedString に変換する関数

public AttributedString getAttrString(String plainRTF){
   ...
}

どうもありがとう

4

2 に答える 2

1

このカスタム AdvancedRTFEditorKit を試してください http://java-sl.com/advanced_rtf_editor_kit.html

于 2012-03-16T05:42:36.303 に答える
0

基礎となるDocumentの構造を解析して、実際の要素を取得できます。各Elementには、 getAttributes()でアクセスできる一連の属性があります。

メソッドを使用して、対応するスタイルをAttributedString使用および適用して構築できます。document.getText()AttributedString.addAttribute()

次に、上に文字列を描きますGraphics。TextLayout を使用して AttributedString をレンダリングするこのチュートリアルを確認してください。

こちらstyledDocumentToAttributedString()の方法をご覧ください。必要なものはすでに実装されている可能性があります。文字列の複雑さによって異なります。また、この議論は役に立つかもしれません。

于 2012-03-16T04:45:03.960 に答える