JavaTM 2 Platform
Standard Ed. 5.0

javax.swing.text
类 AbstractWriter

java.lang.Object
  继承者 javax.swing.text.AbstractWriter
直接已知子类:
HTMLWriter, MinimalHTMLWriter

public abstract class AbstractWriter
extends Object

AbstractWriter 是一个抽象类,它实际执行元素树(包括属性)的写出工作。在每行写出的元素数方面,writer 默认值是 100。但是子类可设置此值。


字段摘要
protected static char NEWLINE
          text 包模拟新行的方式。
 
构造方法摘要
protected AbstractWriter(Writer w, Document doc)
          创建新的 AbstractWriter。
protected AbstractWriter(Writer w, Document doc, int pos, int len)
          创建新的 AbstractWriter。
protected AbstractWriter(Writer w, Element root)
          创建新的 AbstractWriter。
protected AbstractWriter(Writer w, Element root, int pos, int len)
          创建新的 AbstractWriter。
 
方法摘要
protected  void decrIndent()
          降低缩进级别。
protected  boolean getCanWrapLines()
          返回是否可以换行。
protected  int getCurrentLineLength()
          返回当前行的长度。
protected  Document getDocument()
          获取文档。
protected  ElementIterator getElementIterator()
          获取 ElementIterator。
 int getEndOffset()
          选择要输出内容的最后一个偏移量。
protected  int getIndentLevel()
          返回当前的缩进级别。
protected  int getIndentSpace()
          返回要缩进的空格量。
protected  int getLineLength()
          返回最大行长度。
 String getLineSeparator()
          返回用于表示换行的 String。
 int getStartOffset()
          返回要输出内容的第一个偏移量。
protected  String getText(Element elem)
          返回与该元素关联的文本。
protected  Writer getWriter()
          返回用于输出内容的 Writer。
protected  void incrIndent()
          提高缩进级别。
protected  void indent()
          执行缩进。
protected  boolean inRange(Element next)
          此方法确定当前元素是否位于指定的范围内。
protected  boolean isLineEmpty()
          如果应该将当前行视为空行,则返回 true。
protected  void output(char[] content, int start, int length)
          写出内容过程的最后一步。
protected  void setCanWrapLines(boolean newValue)
          设置是否可以换行。
protected  void setCurrentLineLength(int length)
          设置当前行的长度。
protected  void setIndentSpace(int space)
          允许子类指定缩进映射为多少空格。
protected  void setLineLength(int l)
          允许子类设置每行上要写入的字符数。
 void setLineSeparator(String value)
          设置用于表示换行的 String。
protected  void text(Element elem)
          写出文本。
protected abstract  void write()
          需要由子类实现此抽象方法。
protected  void write(char ch)
          写出字符。
protected  void write(char[] chars, int startIndex, int length)
          所有 write 方法都调用到此方法。
protected  void write(String content)
          写出字符串。
protected  void writeAttributes(AttributeSet attr)
          以 " =" 对的形式写出属性集。
protected  void writeLineSeparator()
          写入行分隔符。
 
从类 java.lang.Object 继承的方法
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

字段详细信息

NEWLINE

protected static final char NEWLINE
text 包模拟新行的方式。

另请参见:
getLineSeparator(), 常量字段值
构造方法详细信息

AbstractWriter

protected AbstractWriter(Writer w,
                         Document doc)
创建新的 AbstractWriter。使用默认的文档根初始化 ElementIterator。

参数:
w - Writer。
document - Document。

AbstractWriter

protected AbstractWriter(Writer w,
                         Document doc,
                         int pos,
                         int len)
创建新的 AbstractWriter。使用传入的元素初始化 ElementIterator。

参数:
w - Writer
doc - Element
pos - 在文档中获取内容的位置。
len - 写出量。

AbstractWriter

protected AbstractWriter(Writer w,
                         Element root)
创建新的 AbstractWriter。使用传入的元素初始化 ElementIterator。

参数:
w - Writer
root - Element

AbstractWriter

protected AbstractWriter(Writer w,
                         Element root,
                         int pos,
                         int len)
创建新的 AbstractWriter。使用传入的元素初始化 ElementIterator。

参数:
w - Writer
root - Element
pos - 在文档中获取内容的位置。
len - 写出量。
方法详细信息

getStartOffset

public int getStartOffset()
返回要输出内容的第一个偏移量。

从以下版本开始:
1.3

getEndOffset

public int getEndOffset()
选择要输出内容的最后一个偏移量。

从以下版本开始:
1.3

getElementIterator

protected ElementIterator getElementIterator()
获取 ElementIterator。

返回:
ElementIterator。

getWriter

protected Writer getWriter()
返回用于输出内容的 Writer。

从以下版本开始:
1.3

getDocument

protected Document getDocument()
获取文档。

返回:
Document。

inRange

protected boolean inRange(Element next)
此方法确定当前元素是否位于指定的范围内。未指定范围时,则将范围初始化为整个文档。如果指定的范围与该元素的范围相交,则 inRange() 返回 true。

参数:
next - Element。
返回:
指示元素是否位于该范围的 boolean 值。

write

protected abstract void write()
                       throws IOException,
                              BadLocationException
需要由子类实现此抽象方法。其职责是对元素进行迭代并使用 write() 方法生成所需格式的输出。

抛出:
IOException
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 - Element。
抛出:
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)
设置当前行的长度。

从以下版本开始:
1.3.

getCurrentLineLength

protected int getCurrentLineLength()
返回当前行的长度。

从以下版本开始:
1.3.

isLineEmpty

protected boolean isLineEmpty()
如果应该将当前行视为空行,则返回 true。已在空行上调用 getCurrentLineLength == 0 || indent 时返回值仍为 true。

从以下版本开始:
1.3

setCanWrapLines

protected void setCanWrapLines(boolean newValue)
设置是否可以换行。行写入期间可以切换此设置。例如,输出带引号的字符串时,HTML 输出可能将此内容设置为 false。

从以下版本开始:
1.3

getCanWrapLines

protected boolean getCanWrapLines()
返回是否可以换行。如果为 false,则不会输出 lineSeparator。

从以下版本开始:
1.3

setIndentSpace

protected void setIndentSpace(int space)
允许子类指定缩进映射为多少空格。进行缩进时,缩进级别乘以此映射关系。默认值是 2。

参数:
space - 表示将缩进映射为多少空格的 int 值。

getIndentSpace

protected int getIndentSpace()
返回要缩进的空格量。

从以下版本开始:
1.3

setLineSeparator

public void setLineSeparator(String value)
设置用于表示换行的 String。这是在构造方法中根据 Document 或系统属性 line.separator 来初始化的。

从以下版本开始:
1.3

getLineSeparator

public String getLineSeparator()
返回用于表示换行的 String。

从以下版本开始:
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 - 一个 char。
抛出:
IOException - 如果发生任何 I/O 错误

write

protected void write(String content)
              throws IOException
写出字符串。调用采用 char[] 的 write 方法来实现字符的写出。

参数:
content - String。
抛出:
IOException - 如果发生任何 I/O 错误

writeLineSeparator

protected void writeLineSeparator()
                           throws IOException
写入行分隔符。这会直接调用 output 并将 lineLength 设置为 0。

抛出:
IOException
从以下版本开始:
1.3

write

protected void write(char[] chars,
                     int startIndex,
                     int length)
              throws IOException
所有 write 方法都调用到此方法。如果 getCanWrapLines() 返回 false,则将使用不包含 NEWLINE 的每个 chars 序列调用 output,然后调用 writeLineSeparator。另一方面,如果 getCanWrapLines() 返回 true,则根据需要拆分字符串,以便遵守 getLineLength。惟一的例外是,如果当前字符串不包含空白,并且在行长度超过 getLineLength 的情况中无法放入该字符串。

抛出:
IOException
从以下版本开始:
1.3

writeAttributes

protected void writeAttributes(AttributeSet attr)
                        throws IOException
以 " =" 对的形式写出属性集。遇到 I/O 错误时抛出 IOException。

参数:
attr - AttributeSet。
抛出:
IOException - 如果发生任何 I/O 错误

output

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

此方法还根据 length 更新行长度。如果调用此方法来输出新行,则当前行长度因不再有效而需要被重置。如果由调用方决定是否执行此操作,则使用 writeLineSeparator 写出新行,这将正确地更新当前行的长度。

抛出:
IOException
从以下版本开始:
1.3

JavaTM 2 Platform
Standard Ed. 5.0

提交错误或意见
有关更多的 API 参考资料和开发人员文档,请参阅 Java 2 SDK SE 开发人员文档。该文档包含更详细的、面向开发人员的描述,以及总体概述、术语定义、使用技巧和工作代码示例。

版权所有 2004 Sun Microsystems, Inc. 保留所有权利。 请遵守许可证条款。另请参阅文档重新分发政策