JavaTM 2 Platform
Standard Ed. 6

java.awt.im
介面 InputMethodRequests

所有已知子介面:
InputMethodContext

public interface InputMethodRequests

InputMethodRequests 定義文本編輯元件為了與輸入方法一起使用而必須處理的請求。該元件可以實作此介面本身,也可以使用實作此介面的單獨物件。實作此介面的物件必須根據元件的 getInputMethodRequests 方法返回。

文本編輯元件還必須提供輸入方法事件偵聽器。

設計此介面的目的是支持兩個輸入使用者介面中的其中一個介面:

從以下版本開始:
1.2
另請參見:
Component.getInputMethodRequests(), InputMethodListener

方法摘要
 AttributedCharacterIterator cancelLatestCommittedText(AttributedCharacterIterator.Attribute[] attributes)
          從文本編輯元件中獲取最新的提交文本,並將其從該元件的文本正文中移除。
 AttributedCharacterIterator getCommittedText(int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] attributes)
          獲取提供對文本編輯元件中包含的除未提交文本外整個文本和屬性存取的迭代器。
 int getCommittedTextLength()
          獲取文本編輯元件中包含的除未提交(撰寫)文本外整個文本的長度。
 int getInsertPositionOffset()
          獲取文本編輯元件中包含的提交文本中的插入位置偏移量。
 TextHitInfo getLocationOffset(int x, int y)
          獲取撰寫文本相對於螢幕上指定 x 和 y 絕對坐標的偏移量。
 AttributedCharacterIterator getSelectedText(AttributedCharacterIterator.Attribute[] attributes)
          從文本編輯元件中獲取當前已選定文本。
 Rectangle getTextLocation(TextHitInfo offset)
          獲取當前撰寫文本中指定偏移量的位置,或已提交文本中的選擇位置。
 

方法詳細資訊

getTextLocation

Rectangle getTextLocation(TextHitInfo offset)
獲取當前撰寫文本中指定偏移量的位置,或已提交文本中的選擇位置。例如,此資訊用來確定在撰寫文本附近的候選視窗的位置,或確定將插入提交文本的位置附近的撰寫視窗的位置。

如果元件有撰寫文本(因為給它發送的最新 InputMethodEvent 套件含撰寫文本),則該偏移量是相對於撰寫文本的——偏移量 0 指示撰寫文本中的第一個字元。返回的位置應該是針對此字元的。

如果元件沒有撰寫文本,則應該忽略偏移量,返回的位置應該反映出包含已選定文本的最後一行中高亮顯示的開始處(行方向)。例如,對於水平方向從左到右排列的文本(如英文),則返回包含已選定文本的最後一行上最左邊的字元左邊的位置。對於垂直方向從上到下排列的文本,行從右向左排列,則返回包含已選定文本的最左邊一行的上端位置。

該位置表示為 0 厚度補字號,也就是說,如果文本是水平排列的,則為 0 寬度,如果文本是垂直排列的,則為 0 高度。其他文本方向需要映射到水平或垂直方向。矩形使用絕對值螢幕坐標。

參數:
offset - 撰寫文本中的偏移量(如果有撰寫文本);否則為 null
返回:
表示螢幕偏移量的位置的矩形

getLocationOffset

TextHitInfo getLocationOffset(int x,
                              int y)
獲取撰寫文本相對於螢幕上指定 x 和 y 絕對坐標的偏移量。例如,此資訊可用來處理鼠標單擊和鼠標鼠標。偏移量是相對於撰寫文本的,因此,偏移量 0 指示撰寫文本的開始處。

如果位置在撰寫文本佔用的區域外,則返回 null。

參數:
x - 螢幕上 x 的絕對坐標
y - 螢幕上 y 的絕對坐標
返回:
描述撰寫文本中偏移量的文本單擊資訊。

getInsertPositionOffset

int getInsertPositionOffset()
獲取文本編輯元件中包含的提交文本中的插入位置偏移量。這是通過某個輸入方法輸入的字元插入位置的偏移量。例如,輸入方法使用此資訊來檢查插入位置周圍的文本。

返回:
插入位置的偏移量

getCommittedText

AttributedCharacterIterator getCommittedText(int beginIndex,
                                             int endIndex,
                                             AttributedCharacterIterator.Attribute[] attributes)
獲取提供對文本編輯元件中包含的除未提交文本外整個文本和屬性存取的迭代器。應該在索引計算時忽略未提交(撰寫)文本,並且也不應讓其通過迭代器存取。

輸入方法可以提供一個它感興趣的屬性的列表。在這種情況下,有關實作程序可能具有的其他屬性的資訊不需要通過迭代器進行存取。如果列表為 null,則應該讓所有可用的屬性資訊都可存取。

參數:
beginIndex - 第一個字元的索引
endIndex - 最後一個字元後面的字元的索引
attributes - 輸入方法感興趣的屬性列表
返回:
提供對文本及其屬性存取的迭代器

getCommittedTextLength

int getCommittedTextLength()
獲取文本編輯元件中包含的除未提交(撰寫)文本外整個文本的長度。

返回:
除未提交文本外的文本的長度

cancelLatestCommittedText

AttributedCharacterIterator cancelLatestCommittedText(AttributedCharacterIterator.Attribute[] attributes)
從文本編輯元件中獲取最新的提交文本,並將其從該元件的文本正文中移除。此操作用於某些輸入方法中的“撤消提交”功能,其中的已提交文本將轉換成它以前的撰寫狀態。可以將該撰寫文本發送到使用 InputMethodEvent 的元件。

通常,只有在文本提交後才應立即支持此功能,而不是在使用者對文本執行了其他操作後才支持。該功能不受支持時,返回 null。

輸入方法可以提供一個它感興趣的屬性的列表。在這種情況下,有關實作程序可能具有的其他屬性的資訊不需要通過迭代器進行存取。如果列表為 null,則應該讓所有可用的屬性資訊都可存取。

參數:
attributes - 輸入方法感興趣的屬性的列表
返回:
最新的提交文本,或在不支持“撤消提交”功能時返回 null

getSelectedText

AttributedCharacterIterator getSelectedText(AttributedCharacterIterator.Attribute[] attributes)
從文本編輯元件中獲取當前已選定文本。此操作可以用於各種目的。其中一個就是某些輸入方法中的“恢復”功能。在這種情況下,輸入方法通常會發送輸入方法事件以用撰寫文本替換已選定文本。根據輸入方法的功能,這可以是已選定文本的原始撰寫文本、在文本中任何位置輸入的最新撰寫文本、文本中任何地方輸入的最新撰寫文本或從已選定文本中轉換回文本的版本。

輸入方法可以提供一個它感興趣的屬性的列表。在這種情況下,有關實作程序可能具有的其他屬性的資訊不需要通過迭代器進行存取。如果列表為 null,則應該讓所有可用的屬性資訊都可存取。

參數:
attributes - 輸入方法感興趣的屬性的列表
返回:
當前已選定的文本

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

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