Module  java.desktop
软件包  javax.swing.text

Class DefaultStyledDocument

  • All Implemented Interfaces:
    SerializableDocumentStyledDocument
    已知直接子类:
    HTMLDocument


    public class DefaultStyledDocument
    extends AbstractDocument
    implements StyledDocument
    可以以与RTF格式相似的方式标记字符和段落样式的文档。 此文档的元素结构表示样式运行的样式交叉。 这些样式运行映射到段落元素结构(可能驻留在某种其他结构中)。 风格运行在段落边界,因为逻辑风格被分配到段落边界。

    警告:此类的序列化对象与将来的Swing版本不兼容。 当前的序列化支持适用于运行相同版本的Swing的应用程序之间的短期存储或RMI。 从1.4开始,对所有JavaBeans的长期存储的支持已被添加到java.beans包中。 请参阅XMLEncoder

    另请参见:
    DocumentAbstractDocumentSerialized Form
    • 构造方法详细信息

      • DefaultStyledDocument

        public DefaultStyledDocument​(AbstractDocument.Content c,
                                     StyleContext styles)
        构造一个风格的文档。
        参数
        c - 容器的内容
        styles - 可以跨文档共享的资源和样式定义
      • DefaultStyledDocument

        public DefaultStyledDocument​(StyleContext styles)
        构造具有默认内容存储实现和共享样式集的样式文档。
        参数
        styles - 风格
      • DefaultStyledDocument

        public DefaultStyledDocument​()
        构造默认样式文档。 这将缓冲输入内容大小为BUFFER_SIZE_DEFAULT,并具有在文档生命周期内限定范围的样式上下文,并且不与其他文档共享。
    • 方法详细信息

      • create

        protected void create​(DefaultStyledDocument.ElementSpec[] data)
        初始化文档以反映给定的元素结构(即由 getDefaultRootElement方法报告的结构)。如果文档包含任何数据,将首先被删除。
        参数
        data - 元素数据
      • insert

        protected void insert​(int offset,
                              DefaultStyledDocument.ElementSpec[] data)
                       throws BadLocationException
        批量插入新元素。 这对于允许在解锁状态下解析文档并准备元素结构修改是有用的。 该方法使用一系列令牌来描述如何更新元素结构,以便在异步更新情况下可以大大减少写入锁定内的时间。

        这种方法是线程安全的,尽管大多数Swing方法都不是。 详情请见Concurrency in Swing

        参数
        offset - 起始偏移量> = 0
        data - 元素数据
        异常
        BadLocationException - 起始偏移无效
      • removeElement

        public void removeElement​(Element elem)
        从此文档中删除元素。

        该元素从其父元素中删除,以及由元素标识的范围内的文本。 如果元素不与文档相关联,则抛出IllegalArgumentException

        由于文档中不允许有空的分支元素,如果元素是唯一的子元素,那么它的父元素也将被递归移除。 这意味着在替换特定元素的所有子元素时,应该添加新的子元素, 然后再删除旧的子元素。

        在两个事件元素移除结果被解雇,在DocumentEvent为元素结构的变化和UndoableEditEvent对文档内容的变化。

        如果元素包含内容结束标记(文档中的最后一个"\n"字符),则此字符不会被删除; 相反,前面的叶元素被扩展以覆盖字符。 如果最后一个叶子已经以"\n",结束,它将被包含在内容删除中。

        如果该元素是null, NullPointerException被抛出。 如果元素结构在删除之后变得无效,例如,如果元素是文档根元素,则抛出IllegalArgumentException 如果当前的元素结构无效,则抛出IllegalStateException

        参数
        elem - 要删除的元素
        异常
        NullPointerException - 如果元素是 null
        IllegalArgumentException - 如果元素无法删除
        IllegalStateException - 如果元素结构无效
        从以下版本开始:
        1.7
      • addStyle

        public Style addStyle​(String nm,
                              Style parent)
        在逻辑样式层次结构中添加新样式。 样式属性从下到上解析,因此在孩子中指定的属性将覆盖父项中指定的属性。
        Specified by:
        addStyle接口 StyledDocument
        参数
        nm - 样式的名称(在命名样式的集合中必须是唯一的)。 如果风格未命名,名称可能为null,但是调用者负责管理返回的引用,因为未命名的样式无法通过名称获取。 一个未命名的样式可能对于诸如字符属性覆盖(例如在样式运行中找到)的事情是有用的。
        parent - 父风格。 如果未指定的属性不需要以某种其他风格解析,则此值可能为null。
        结果
        样式
      • removeStyle

        public void removeStyle​(String nm)
        删除之前添加到文档的命名样式。
        Specified by:
        removeStyle在接口 StyledDocument
        参数
        nm - 要删除的样式的名称
      • getStyle

        public Style getStyle​(String nm)
        获取先前添加的命名样式。
        Specified by:
        getStyle在接口 StyledDocument
        参数
        nm - 样式的名称
        结果
        样式
      • getStyleNames

        public Enumeration<?> getStyleNames​()
        获取样式名称列表。
        结果
        所有的风格名称
      • setLogicalStyle

        public void setLogicalStyle​(int pos,
                                    Style s)
        设置用于给定位置的段落的逻辑样式。 如果没有为字符和段落属性明确设置属性,则它们将通过分配给段落的逻辑风格进行解析,而后者又可以通过某些层次结构完全独立于文档中的元素层次结构来解析属性。

        这种方法是线程安全的,尽管大多数Swing方法都不是。 详情请参阅Concurrency in Swing

        Specified by:
        setLogicalStyle在接口 StyledDocument
        参数
        pos - 从文档开始> = 0的偏移量
        s - 分配给段落的逻辑样式,如果没有则为null
      • getLogicalStyle

        public Style getLogicalStyle​(int p)
        获取分配给由给定位置表示的段落的逻辑风格。
        Specified by:
        getLogicalStyle在接口 StyledDocument
        参数
        p - 转换为段落的位置,并确定分配的逻辑样式> = 0。这是从文档开头的偏移量。
        结果
        样式,如果没有则为null
      • setCharacterAttributes

        public void setCharacterAttributes​(int offset,
                                           int length,
                                           AttributeSet s,
                                           boolean replace)
        设置文档某些部分的属性。 在进行更改时,此操作将保留写入锁定,并且在更改成功完成后将DocumentEvent发送到侦听器。

        这种方法是线程安全的,尽管大多数Swing方法都不是。 详情请参阅Concurrency in Swing

        Specified by:
        setCharacterAttributes在接口 StyledDocument
        参数
        offset - 文档中的偏移量> = 0
        length - 长度> = 0
        s - 属性
        replace - 如果在设置新属性之前应该替换以前的属性, replace true
      • setParagraphAttributes

        public void setParagraphAttributes​(int offset,
                                           int length,
                                           AttributeSet s,
                                           boolean replace)
        设置段落的属性。

        这种方法是线程安全的,尽管大多数Swing方法都不是。 详情请见Concurrency in Swing

        Specified by:
        setParagraphAttributes在接口 StyledDocument
        参数
        offset - 偏移到段落> = 0
        length - 受影响的字符数> = 0
        s - 属性
        replace - 是否替换现有属性,或合并它们
      • getCharacterElement

        public Element getCharacterElement​(int pos)
        基于位置获取字符元素。
        Specified by:
        getCharacterElement在接口 StyledDocument
        参数
        pos - 文档中的位置> = 0
        结果
        元素
      • styleChanged

        protected void styleChanged​(Style style)
        当本文档的任何样式发生变化时调用。 子类可能希望对什么被损坏是聪明的。
        参数
        style - 已更改的样式。