JavaTM 2 Platform
Standard Ed. 6

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. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only