|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
| 上一個類別 下一個類別 | 框架 無框架 | |||||||||
| 摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 | |||||||||
java.lang.Objectjava.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 中的 cloneCloneable
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。