模块 java.desktop

类 DefaultStyledDocument

java.lang.Object
javax.swing.text.AbstractDocument
javax.swing.text.DefaultStyledDocument
所有已实现的接口:
Serializable , Document , StyledDocument
已知子类:
HTMLDocument

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

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

参见:
  • 字段详细信息

  • 构造方法详细信息

    • DefaultStyledDocument

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

      public DefaultStyledDocument(StyleContext  styles)
      使用默认内容存储实现和一组共享样式构造样式化文档。
      参数:
      styles - 样式
    • DefaultStyledDocument

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

    • getDefaultRootElement

      public Element  getDefaultRootElement()
      获取默认的根元素。
      指定者:
      getDefaultRootElement 在接口 Document
      指定者:
      getDefaultRootElement 在类 AbstractDocument
      返回:
      参见:
    • create

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

      protected void insert(int offset, DefaultStyledDocument.ElementSpec [] data) throws BadLocationException
      批量插入新元素。这对于允许在解锁状态下解析文档并准备元素结构修改很有用。此方法采用描述如何更新元素结构的标记数组,因此在异步更新情况下可以大大减少写锁定内的时间。

      此方法是线程安全的,尽管大多数 Swing 方法不是。请参阅 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)
      将新样式添加到逻辑样式层次结构中。样式属性从下到上解析,因此在子项中指定的属性将重写在父项中指定的属性。
      指定者:
      addStyle 在接口 StyledDocument
      参数:
      nm - 样式名称(在命名样式集合中必须是唯一的)。如果样式未命名,名称可能为 null,但调用者负责管理返回的引用,因为无法通过名称获取未命名样式。未命名的样式可能对诸如字符属性覆盖之类的事情很有用,例如在样式运行中发现的。
      parent - 父样式。如果不需要以某种其他样式解析未指定的属性,则这可能为 null。
      返回:
      样式
    • removeStyle

      public void removeStyle(String  nm)
      删除以前添加到文档中的命名样式。
      指定者:
      removeStyle 在接口 StyledDocument
      参数:
      nm - 要删除的样式的名称
    • getStyle

      public Style  getStyle(String  nm)
      获取先前添加的命名样式。
      指定者:
      getStyle 在接口 StyledDocument
      参数:
      nm - 样式名称
      返回:
      样式
    • getStyleNames

      public Enumeration <?> getStyleNames()
      获取样式名称列表。
      返回:
      所有样式名称
    • setLogicalStyle

      public void setLogicalStyle(int pos, Style  s)
      设置用于给定位置段落的逻辑样式。如果没有为字符和段落属性显式设置属性,它们将通过分配给段落的逻辑样式来解析,而这又可能通过一些完全独立于文档中元素层次结构的层次结构来解析。

      此方法是线程安全的,尽管大多数 Swing 方法不是。请参阅 Swing 中的并发 了解更多信息。

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

      public Style  getLogicalStyle(int p)
      获取分配给由给定位置表示的段落的逻辑样式。
      指定者:
      getLogicalStyle 在接口 StyledDocument
      参数:
      p - 翻译成段落并确定分配的逻辑样式的位置 >= 0。这是距文档开头的偏移量。
      返回:
      样式,如果没有则为 null
    • setCharacterAttributes

      public void setCharacterAttributes(int offset, int length, AttributeSet  s, boolean replace)
      为文档的某些部分设置属性。在进行更改时,此操作会持有写锁,并在成功完成更改后将 DocumentEvent 发送给监听。

      offsetlength 定义设置属性的文本范围。如果长度 <= 0,则不执行任何操作,方法直接返回。如果偏移量 <=0 或 > 文本的长度,则不采取任何操作,方法只是返回。否则,如果 offset + length 将超过文本的长度,则受影响的范围将被截断。

      此方法是线程安全的,尽管大多数 Swing 方法不是。请参阅 Swing 中的并发 了解更多信息。

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

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

      此方法是线程安全的,尽管大多数 Swing 方法不是。请参阅 Swing 中的并发 了解更多信息。

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

      public Element  getParagraphElement(int pos)
      获取偏移量为 pos 的段落元素。一个段落至少包含一个子元素,通常是一片叶子。
      指定者:
      getParagraphElement 在接口 StyledDocument
      指定者:
      getParagraphElement 在类 AbstractDocument
      参数:
      pos - 起始偏移量 >= 0
      返回:
      元素
    • getCharacterElement

      public Element  getCharacterElement(int pos)
      根据位置获取字符元素。
      指定者:
      getCharacterElement 在接口 StyledDocument
      参数:
      pos - 文档中的位置 >= 0
      返回:
      元素
    • insertUpdate

      protected void insertUpdate(AbstractDocument.DefaultDocumentEvent  chng, AttributeSet  attr)
      作为文本插入的结果更新文档结构。这将在写锁内发生。此实现简单地解析插入的内容以换行并为元素缓冲区构建一组指令。
      重写:
      insertUpdate 在类 AbstractDocument
      参数:
      chng - 文档更改的描述
      attr - 属性
    • removeUpdate

      protected void removeUpdate(AbstractDocument.DefaultDocumentEvent  chng)
      由于文本删除而更新文档结构。
      重写:
      removeUpdate 在类 AbstractDocument
      参数:
      chng - 文档更改的描述
    • createDefaultRoot

      protected AbstractDocument.AbstractElement  createDefaultRoot()
      创建用于表示默认文档结构的根元素。
      返回:
      元素基础
    • getForeground

      public Color  getForeground(AttributeSet  attr)
      从属性集中获取前景色。
      指定者:
      getForeground 在接口 StyledDocument
      参数:
      attr - 属性集
      返回:
      颜色
    • getBackground

      public Color  getBackground(AttributeSet  attr)
      从属性集中获取背景颜色。
      指定者:
      getBackground 在接口 StyledDocument
      参数:
      attr - 属性集
      返回:
      颜色
    • getFont

      public Font  getFont(AttributeSet  attr)
      从属性集中获取字体。
      指定者:
      getFont 在接口 StyledDocument
      参数:
      attr - 属性集
      返回:
      字体
    • styleChanged

      protected void styleChanged(Style  style)
      当此文档的任何样式发生更改时调用。子类可能希望了解损坏的内容。
      参数:
      style - 已更改的样式。
    • addDocumentListener

      public void addDocumentListener(DocumentListener  listener)
      添加一个文档监听以通知任何更改。
      指定者:
      addDocumentListener 在接口 Document
      重写:
      addDocumentListener 在类 AbstractDocument
      参数:
      listener - 听众
      参见:
    • removeDocumentListener

      public void removeDocumentListener(DocumentListener  listener)
      删除文档监听。
      指定者:
      removeDocumentListener 在接口 Document
      重写:
      removeDocumentListener 在类 AbstractDocument
      参数:
      listener - 听众
      参见: