2011-01-24 21 views
3

は私が要素の目的を理解しようとしているとどのようにそれがJEditorPaneのかJTextPaneの中に表示されるStyledDocumentのを操作を支援することができます。私はそれが「パラグラフ」の概念にどのように関係しているのかを把握しようとしています。文書の構造的な部分を説明するJavaのスイングにおける要素の目的とStyledDocumentのとの関係や段落

パブリックインターフェイス要素

インタフェース:

javax.swing.text.Elementのjavadocは、ほとんど何もありません。 SGML要素の精神を捉えることを目的としています。

私はHTMLとXMLの要素の概念に精通していますが、これは似たようなものですが、私はStyledDocumentに関連してその目的を理解できません。最初は、これはStyledDocumentが内部でさまざまなスタイルの停止点と開始点を管理するために使用していたものだと思っていましたが、要素のインスタンスを使用したWeb上のコード例を見ました。

私はすでに別のフォントと色で表示する必要があるデータのツリー構造を持っており、必要に応じてフォントや色を変更する場所を教えてくれます。私は、自分自身に触れることなく、StyledDocument.setCharacterAttributessetParagraphAttributesへの一連の呼び出しで、すぐに必要を満たすことができるようです。

しかし、私はElementを使用する方がより効率的またはクリーンであるという印象を受けます。 Elementの適切な理解を助け、StyledDocumentとparagrahのコンセプトにどのように役立つのかを教えてください。なぜなら、私は今何か要素を使用していなくても、私が見逃していることを感謝し、次の同様の状況のた​​めにそれを使用する方法。

答えて

6

実際、DefaultStyledDocumentはElementsのツリーです。 BranchElementsとLeafElementsがあります。リーフは、フォントサイズ/スタイル、フォントの色属性(太字、斜体、下線など)などのテキスト属性を持つテキストを表します。BrachElementには、Leavesまたは別の分岐要素が含まれます。最も単純な場合、ブランチは段落です。しかし、ルート要素もBranchElementのインスタンスです。すべての要素は独自のAttributeSetを持つことができます。例:テキストの色LeafElementのセットが尋ねられます。色が定義されていない場合、葉の親要素が尋ねられます。

これは、ドキュメントがどのように表されているか(モデル)、およびモデルがビューでどのように表されているかを見るために使用できます。 http://java-sl.com/JEditorPaneStructureTool.html

の例では、HTMLDocumentのの構造を示していますが、開始とのエンドポイントをマークするために、私はsetParagraphAttributesを呼び出す場合、それはStyledDocumentの内部の要素を作成しないたStyledEditorKitの構造だけでなくので

+1

を見るために同じコードを使用することができますパラグラフ? – Gigatron

+1

いいえ、段落の要素は既に存在します。挿入されたテキスト用に作成されます。実際、各テキストの断片が "\ n"で終わっている場合、段落要素が作成されます。 setParagraphAttributes()を呼び出すと、影響を受けるすべての段落の属性がメソッドのパラメータに従って変更されます。最後のparamがtrueの場合、古いattrsはすべて新しいattrsに置き換えられます。逆の場合、指定された属性のみが置き換えられます。 – StanislavL

+0

ありがとうございます。あなたのリンクの例を勉強するのにもっと時間を取らなければならないでしょうし、SunのDocument関連のクラスのソースコードを調べる必要もあります。 – Gigatron

関連する問題