模块 java.desktop

类 AbstractWriter

java.lang.Object
javax.swing.text.AbstractWriter
已知子类:
HTMLWriter , MinimalHTMLWriter

public abstract class AbstractWriter extends Object
AbstractWriter 是一个抽象类,它实际上完成写出包括属性在内的元素树的工作。对于每行写出多少,writer默认为100。但是这个值可以由子类设置。
  • 字段详细信息

  • 构造方法详细信息

    • AbstractWriter

      protected AbstractWriter(Writer  w, Document  doc)
      创建一个新的 AbstractWriter。使用文档的默认根初始化 ElementIterator。
      参数:
      w - 作家。
      doc - 文档
    • AbstractWriter

      protected AbstractWriter(Writer  w, Document  doc, int pos, int len)
      创建一个新的 AbstractWriter。使用传入的元素初始化 ElementIterator。
      参数:
      w - 作家
      doc - 一个元素
      pos - 文档中获取内容的位置。
      len - 要写出的数量。
    • AbstractWriter

      protected AbstractWriter(Writer  w, Element  root)
      创建一个新的 AbstractWriter。使用传入的元素初始化 ElementIterator。
      参数:
      w - 作家
      root - 一个元素
    • AbstractWriter

      protected AbstractWriter(Writer  w, Element  root, int pos, int len)
      创建一个新的 AbstractWriter。使用传入的元素初始化 ElementIterator。
      参数:
      w - 作家
      root - 一个元素
      pos - 文档中获取内容的位置。
      len - 要写出的数量。
  • 方法详情

    • getStartOffset

      public int getStartOffset()
      返回要输出的第一个偏移量。
      返回:
      要输出的第一个偏移量
      自从:
      1.3
    • getEndOffset

      public int getEndOffset()
      返回要输出的最后一个偏移量。
      返回:
      要输出的最后一个偏移量
      自从:
      1.3
    • getElementIterator

      protected ElementIterator  getElementIterator()
      获取 ElementIterator。
      返回:
      元素迭代器。
    • getWriter

      protected Writer  getWriter()
      返回用于输出内容的 Writer。
      返回:
      用于输出内容的 Writer
      自从:
      1.3
    • getDocument

      protected Document  getDocument()
      获取文档。
      返回:
      文件。
    • inRange

      protected boolean inRange(Element  next)
      该方法判断当前元素是否在指定范围内。当没有指定范围时,范围被初始化为整个文档。如果指定的范围与元素的范围相交,则 inRange() 返回 true。
      参数:
      next - 一个元素。
      返回:
      指示元素是否在范围内的boolean。
    • write

      protected abstract void write() throws IOException , BadLocationException
      这个抽象方法需要由子类来实现。它的职责是遍历元素并使用 write() 方法生成所需格式的输出。
      抛出:
      IOException - 如果发生 I/O 问题
      BadLocationException - 文档中的无效位置
    • getText

      protected String  getText(Element  elem) throws BadLocationException
      返回与元素关联的文本。这里假设元素是叶元素。遇到时抛出 BadLocationException。
      参数:
      elem - 一个 Element
      返回:
      文本作为String
      抛出:
      BadLocationException - 如果 pos 表示文档中的无效位置
    • text

      protected void text(Element  elem) throws BadLocationException , IOException
      写出文本。如果在调用构造方法时指定了范围,则只会写出适当范围的文本。
      参数:
      elem - 一个元素。
      抛出:
      IOException - 出现任何 I/O 错误
      BadLocationException - 如果 pos 表示文档中的无效位置。
    • setLineLength

      protected void setLineLength(int l)
      使子类能够设置每行要写入的字符数。默认值为 100。
      参数:
      l - 最大行长度。
    • getLineLength

      protected int getLineLength()
      返回最大行长度。
      返回:
      最大行长
      自从:
      1.3
    • setCurrentLineLength

      protected void setCurrentLineLength(int length)
      设置当前行长度。
      参数:
      length - 新行长度
      自从:
      1.3
    • getCurrentLineLength

      protected int getCurrentLineLength()
      返回当前行长度。
      返回:
      当前行长度
      自从:
      1.3
    • isLineEmpty

      protected boolean isLineEmpty()
      如果当前行应被视为空,则返回 true。当 getCurrentLineLength == 0 || 时为真indent 已在空行上调用。
      返回:
      如果当前行应被视为空行则为真
      自从:
      1.3
    • setCanWrapLines

      protected void setCanWrapLines(boolean newValue)
      设置是否可以换行。这可以在写行期间切换。例如,输出 HTML 可能会在输出带引号的字符串时将其设置为 false。
      参数:
      newValue - 换行的新值
      自从:
      1.3
    • getCanWrapLines

      protected boolean getCanWrapLines()
      返回行是否可以换行。如果这是 false,则不会输出 lineSeparator。
      返回:
      是否可以换行
      自从:
      1.3
    • setIndentSpace

      protected void setIndentSpace(int space)
      使子类能够指定缩进映射到多少个空格。发生缩进时,缩进级别将乘以此map。默认值为 2。
      参数:
      space - 表示缩进映射空间的 int。
    • getIndentSpace

      protected int getIndentSpace()
      返回缩进的空间量。
      返回:
      缩进的空间量
      自从:
      1.3
    • setLineSeparator

      public void setLineSeparator(String  value)
      设置用于表示换行符的字符串。这是在文档或系统属性 line.separator 的构造方法中初始化的。
      参数:
      value - 新的行分隔符
      自从:
      1.3
    • getLineSeparator

      public String  getLineSeparator()
      返回用于表示换行符的字符串。
      返回:
      用于表示换行符的字符串
      自从:
      1.3
    • incrIndent

      protected void incrIndent()
      增加缩进级别。如果缩进会导致 getIndentSpace() *getIndentLevel() 大于 getLineLength() 这将不会导致缩进。
    • decrIndent

      protected void decrIndent()
      减少缩进级别。
    • getIndentLevel

      protected int getIndentLevel()
      返回当前缩进级别。即incrIndent被调用的次数减去decrIndent被调用的次数。
      返回:
      当前缩进级别
      自从:
      1.3
    • indent

      protected void indent() throws IOException
      是否缩进。写出的空格数是缩进级别乘以映射空间。如果当前行是空的,这不会使当前行仍然被认为是空的。
      抛出:
      IOException - 出现任何 I/O 错误
    • write

      protected void write(char ch) throws IOException
      写出一个字符。这是为了调用采用 char[] 的 write 方法而实现的。
      参数:
      ch - 一个字符。
      抛出:
      IOException - 出现任何 I/O 错误
    • write

      protected void write(String  content) throws IOException
      写出一个字符串。这是为了调用采用 char[] 的 write 方法而实现的。
      参数:
      content - 一个字符串。
      抛出:
      IOException - 出现任何 I/O 错误
    • writeLineSeparator

      protected void writeLineSeparator() throws IOException
      写入行分隔符。这会直接调用 output 并将 lineLength 设置为 0。
      抛出:
      IOException - 出现任何 I/O 错误
      自从:
      1.3
    • write

      protected void write(char[] chars, int startIndex, int length) throws IOException
      所有的写方法都会调用这个方法。如果 getCanWrapLines() 返回 false,这将使用不包含换行符的每个 chars 序列调用 output,然后调用 writeLineSeparator。另一方面,如果 getCanWrapLines() 返回 true,这将根据需要拆分字符串,因此 getLineLength 得到尊重。唯一的例外是如果当前字符串不包含空格,并且不适合这种情况,行长度将超过 getLineLength
      参数:
      chars - 要输出的字符
      startIndex - 起始索引
      length - 输出长度
      抛出:
      IOException - 出现任何 I/O 错误
      自从:
      1.3
    • writeAttributes

      protected void writeAttributes(AttributeSet  attr) throws IOException
      将属性集写出为“<name>=<value>”对。遇到时会抛出 IOException。
      参数:
      attr - 一个属性集。
      抛出:
      IOException - 出现任何 I/O 错误
    • output

      protected void output(char[] content, int start, int length) throws IOException
      写出内容的最后一站。所有写入方法最终都会进入此方法,该方法会在 Writer 上调用 write

      此方法还根据 length 更新行长度。如果调用它来输出换行符,则当前行长度将需要重置,因为它将不再有效。如果由调用者来执行此操作。使用 writeLineSeparator 写出换行符,这将更新当前行的长度。

      参数:
      content - 要输出的字符
      start - 起始索引
      length - 输出长度
      抛出:
      IOException - 出现任何 I/O 错误
      自从:
      1.3