我试图了解元素的用途,以及它如何帮助操作将显示在JEditorPane或JTextPane中的JEditorPane。我还试图理解它与“段落”概念的关系。
javax.swing.text.Element的javadoc几乎没有:
公共接口元素接口,用于描述文档的结构块。它旨在捕捉SGML元素的精神。
。
我非常熟悉HTML和XML中元素的概念,显然这是类似的东西,但我无法看出它与StyledDocument有关的目的。起初,我认为这只是StyledDocument内部用来管理不同样式的停止点和起始点的东西,但后来我在web上看到了它们使用元素实例的代码示例。
我已经有了自己的树状结构的数据,我需要显示在不同的字体和颜色,并遍历它将告诉我在哪里改变字体或颜色的需要。看起来,我可以通过对StyledDocument.setCharacterAttributes和setParagraphAttributes,的一系列调用来满足眼前的需求,而无需亲自接触元素。
但我的印象是,使用元素会更有效或更干净。请帮助我正确地理解元素,以及它如何帮助StyledDocument和滑翔伞的概念,所以即使我现在不使用任何元素,我至少也会感激我所缺少的,并且知道是否和如何在下一个类似的情况下使用它。
发布于 2011-01-24 13:42:03
实际上,DefaultStyledDocument是一棵元素树。有BranchElements和LeafElements。叶表示一段文本,文本属性有字体大小/样式、字体颜色属性--粗体、斜体、下划线等。BrachElement包含叶子或其他分支元素。在最简单的情况下,分支是段落。但是根元素也是BranchElement的实例。所有元素都可能有自己的AttributeSet。为了找到例如文本的颜色,叶元素的集合被要求。如果未定义颜色,则询问叶的父元素。
您可以使用它查看文档是如何表示的(模型)以及模型是如何在视图中表示的。http://java-sl.com/JEditorPaneStructureTool.html
该示例显示了HTMLDocument的结构,但您也可以使用相同的代码查看StyledEditorKit的结构
https://stackoverflow.com/questions/4781792
复制相似问题