|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.font.TextMeasurer
public final class TextMeasurer
TextMeasurer
類別提供換行所需的基本操作:測量到給定的 advance,確定字元範圍的 advance,並為字元範圍產生一個 TextLayout
。該類別還提供了段落增量編輯的方法。
TextMeasurer
物件是使用表示單個文本段落的 AttributedCharacterIterator
建構的。AttributedCharacterIterator
的 getBeginIndex
方法返回的值定義了第一個字元的絕對索引。AttributedCharacterIterator
的 getEndIndex
方法返回的值定義了最後一個字元後的索引。這些值定義了調用 TextMeasurer
的時使用的索引範圍。例如,要通過調用獲取文本範圍的 advance 或文本範圍的換行,則必須使用開始索引值和結束索引值之間的索引。調用 insertChar
和 deleteChar
重置 TextMeasurer
要使用在這些調用中傳入的 AttributedCharacterIterator
的開始索引和結束索引。
大多數客戶端將使用更方便的 LineBreakMeasurer
,它實作了標準的換行策略(在每一行上放置盡可能多的適合的單詞)。
LineBreakMeasurer
建構子摘要 | |
---|---|
TextMeasurer(AttributedCharacterIterator text,
FontRenderContext frc)
從源文本建構 TextMeasurer 。 |
方法摘要 | |
---|---|
protected Object |
clone()
創建並返回此物件的一個副本。 |
void |
deleteChar(AttributedCharacterIterator newParagraph,
int deletePos)
從當前由此 TextMeasurer 表示的段落中刪除一個字元後,更新 TextMeasurer 。 |
float |
getAdvanceBetween(int start,
int limit)
返回從 start 開始並包括一直到 limit 的字元的行的圖形寬度。 |
TextLayout |
getLayout(int start,
int limit)
返回給定字元範圍上的 TextLayout 。 |
int |
getLineBreakIndex(int start,
float maxAdvance)
返回不能置於文本行上的第一個字元,該文本行從 start 開始並可能測量到圖形寬度的 maxAdvance 。 |
void |
insertChar(AttributedCharacterIterator newParagraph,
int insertPos)
在將單個字元插入當前由此 TextMeasurer 表示的段落中後,更新該 TextMeasurer 。 |
從類別 java.lang.Object 繼承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
public TextMeasurer(AttributedCharacterIterator text, FontRenderContext frc)
TextMeasurer
。源文本應為一個整段。
text
- 源段落。不能為 null。frc
- 關於需要正確測量文本的圖形設備的資訊。不能為 null。方法詳細資訊 |
---|
protected Object clone()
Object
複製的描述為 true,表達式:x.clone() != x
也為 true,但這些並非必須要滿足的要求。一般情況下:x.clone().getClass() == x.getClass()
為 true,但這並非必須要滿足的要求。x.clone().equals(x)
按照慣例,返回的物件應該通過調用 super.clone 獲得。如果一個類別及其所有的父級類別(Object 除外)都遵守此約定,則 x.clone().getClass() == x.getClass()。
按照慣例,此方法返回的物件應該獨立於該物件(正被複製的物件)。要獲得此獨立性,在 super.clone 返回物件之前,有必要對該物件的一個或多個欄位進行修改。這通常意味著要複製包含正在被複製物件的內部「深層結構」的所有可變物件,並使用對副本的參考替換對這些物件的參考。如果一個類別只包含基本欄位或對不變物件的參考,那麼通常不需要修改 super.clone 返回的物件中的欄位。
Object 類別的 clone 方法執行特定的複製操作。首先,如果此物件的類別不能實作介面 Cloneable,則會拋出 CloneNotSupportedException。注意,所有的陣列都被視為實作介面 Cloneable。否則,此方法會創建此物件的類別的一個新實例,並像通過分派那樣,嚴格使用此物件相應欄位的內容初始化該物件的所有欄位;這些欄位的內容沒有被自我複製。所以,此方法執行的是該物件的「淺表複製」,而不「深層複製」操作。
Object 類別本身不實作介面 Cloneable,所以在類別為 Object 的物件上調用 clone 方法將會導致在運行時拋出異常。
Object
中的 clone
Cloneable
public int getLineBreakIndex(int start, float maxAdvance)
start
開始並可能測量到圖形寬度的 maxAdvance
。
start
- 從此處開始測量的字元索引。start
是一個絕對索引,而不是相對於段落開始處的相對索引maxAdvance
- 文本行必須符合的圖形寬度
start
開始、不長於 maxAdvance
文本行上的最後一個字元後的索引
IllegalArgumentException
- 如果 start
小於段落的開始位置。public float getAdvanceBetween(int start, int limit)
start
開始並包括一直到 limit
的字元的行的圖形寬度。start
和 limit
是絕對索引,不是相對於段落開始處的相對索引。
start
- 開始測量的字元索引limit
- 停止測量的字元索引
start
處開始並包括一直到 limit
的字元的行的圖形寬度
IndexOutOfBoundsException
- 如果 limit
小於 start
IllegalArgumentException
- 如果 start
或 limit
不在段落開始處和段落結束處之間。public TextLayout getLayout(int start, int limit)
TextLayout
。
start
- 第一個字元的索引limit
- 最後一個字元之後的索引。必須大於 start
start
開始(不包括)直到 limit
的字元的 TextLayout
IndexOutOfBoundsException
- 如果 limit
小於 start
IllegalArgumentException
- 如果 start
或 limit
不在段落開始處和段落結束處之間。public void insertChar(AttributedCharacterIterator newParagraph, int insertPos)
TextMeasurer
表示的段落中後,更新該 TextMeasurer
。在此調用後,該 TextMeasurer
等效於從文本創建的新 TextMeasurer
;不過,更新現有 TextMeasurer
通常比重新創建一個新 TextMeasurer
效率更高。
newParagraph
- 執行插入後段落的文本。不能為 null。insertPos
- 插入字元在文本中的位置。不能小於 newParagraph
的開始,且必須小於 newParagraph
的結束。
IndexOutOfBoundsException
- 如果 insertPos
小於 newParagraph
的開始或者大於或等於 newParagraph
的結束
NullPointerException
- 如果 newParagraph
為 null
public void deleteChar(AttributedCharacterIterator newParagraph, int deletePos)
TextMeasurer
表示的段落中刪除一個字元後,更新 TextMeasurer
。在此調用後,該 TextMeasurer
等效於從文本創建的新 TextMeasurer
;不過,更新現有 TextMeasurer
通常比重新創建一個新 TextMeasurer
效率更高。
newParagraph
- 執行刪除後的段落文本。不能為 null。deletePos
- 所移除字元在文本中的位置。不能小於 newParagraph
的開始,而且不能大於 newParagraph
的結束。
IndexOutOfBoundsException
- 如果 deletePos
小於 newParagraph
的開始或大於 newParagraph
的結束
NullPointerException
- 如果 newParagraph
為 null
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。