2011-01-24 24 views
3

我想了解的目的,如何將其與操縱StyledDocument中的是要顯示在一個JEditorPane或JTextPane的幫助。我也試圖把握它與「段落」概念的關係。目的元素及其StyledDocument中的關係和段落

爲javax.swing.text.Element的Javadoc是幾乎沒有:

公共接口Element

接口描述文檔的一個結構件。它旨在捕捉SGML元素的精神。

我對HTML和XML中元素的概念非常熟悉,顯然這是類似的東西,但我只是無法看到它與StyledDocument相關的目的。起初,我認爲這只是StyledDocument在內部用來管理不同樣式的停止和起始點的事情,但後來我在網上看到了他們使用Element實例的代碼示例。

我已經有我自己的樹狀結構的數據,我需要以不同的字體和顏色顯示,並遍歷它會告訴我需要更改字體或顏色的位置。看起來我可以通過一系列StyledDocument.setCharacterAttributessetParagraphAttributes的一系列調用來滿足當前需求,而無需親自觸摸Element。

但我得到的印象是使用Element會更高效或更清潔。請幫助我正確理解Element,以及它如何幫助StyledDocument和paragrah的概念,所以即使我現在不使用任何元素,我至少也會欣賞我所缺少的東西,並知道是否如何將它用於下一個類似的情況。

回答

6

實際上,DefaultStyledDocument是元素樹。有BranchElements和LeafElements。葉代表一個文本的文本屬性,如字體大小/樣式,字體顏色屬性 - 粗體,斜體,下劃線等。BrachElement包含樹葉或其他分支元素。在最簡單的情況下,分支是段落。但是根元素也是BranchElement的實例。所有元素都可以擁有自己的AttributeSet。要找到例如詢問文本LeafElement的集合的顏色。如果未定義顏色,則會詢問葉的父元素。

您可以使用它來查看Document如何表示(模型)以及如何在視圖中表示模型。 http://java-sl.com/JEditorPaneStructureTool.html

的例子顯示了HTMLDocument的的結構,但您可以使用相同的代碼,看看StyledEditorKit的結構以及

+1

所以,如果我叫setParagraphAttributes,是否該StyledDocument中的內部創建一個元素標記的開始和端點段? – Gigatron 2011-01-24 14:32:19

相關問題