|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
public interface InputMethod
定義支持複雜文本輸入的輸入方法介面。輸入方法通常支持多語言文本輸入,這些語言(如漢語、日語和韓語)都有無法在標準鍵盤上直接表示的字元。不過,它們也可以用來支持英語語音文本輸入或泰語字元的重新排序。
InputMethod 的子類別可以由輸入方法框架載入;然後可以通過 API (InputContext.selectInputMethod
) 或通過使用者介面(輸入方法選擇選單)對其進行選擇。
方法摘要 | |
---|---|
void |
activate()
啟動輸入方法,以便立即進行輸入處理。 |
void |
deactivate(boolean isTemporary)
讓輸入方法處於非活動狀態。 |
void |
dispatchEvent(AWTEvent event)
將事件指派到輸入方法。 |
void |
dispose()
釋放由此輸入方法使用的資源。 |
void |
endComposition()
結束當前可能在此上下文中正進行的任何輸入撰寫。 |
Object |
getControlObject()
從此輸入方法返回一個控制物件,或 null。 |
Locale |
getLocale()
返回當前的輸入語言環境。 |
void |
hideWindows()
關閉或隱藏由此輸入方法實例或其類別打開的所有視窗。 |
boolean |
isCompositionEnabled()
確定此輸入方法是否已啟用。 |
void |
notifyClientWindowChange(Rectangle bounds)
通知此輸入方法客戶端視窗位置或狀態的更改。 |
void |
reconvert()
啟動恢復操作。 |
void |
removeNotify()
通知輸入方法已從客戶端元件所在容器層次結構中移除該客戶端元件,或通知它該元件已禁用輸入方法支持。 |
void |
setCharacterSubsets(Character.Subset[] subsets)
設置允許此輸入方法進行輸入的 Unicode 字元集的子集。 |
void |
setCompositionEnabled(boolean enable)
啟用或禁用輸入方法的撰寫功能,具體取決於參數 enable 的值。 |
void |
setInputMethodContext(InputMethodContext context)
設置輸入方法的上下文,這樣可以將輸入方法事件指派到客戶端元件並能從客戶端元件請求資訊。 |
boolean |
setLocale(Locale locale)
試圖設置輸入語言環境。 |
方法詳細資訊 |
---|
void setInputMethodContext(InputMethodContext context)
實例化此輸入方法之後馬上就會調用一次此方法。
context
- 此輸入方法的輸入方法上下文
NullPointerException
- 如果 context
為 nullboolean setLocale(Locale locale)
以下情況可調用此方法
InputContext.selectInputMethod
調用。
getLocale
方法返回一個非 null 值,則當通過使用者介面切換為該輸入方法時調用。
locale
- 要輸入的語言環境
NullPointerException
- 如果 locale
為 nullLocale getLocale()
以下情況可調用此方法
InputContext.getLocale
調用,和
void setCharacterSubsets(Character.Subset[] subsets)
以下情況可調用此方法
InputContext.setCharacterSubsets
調用。
subsets
- 可以從其輸入字元的 Unicode 字元集的子集void setCompositionEnabled(boolean enable)
enable
的值。
啟用輸入方法的撰寫功能將出於撰寫和控制目的解釋傳入事件,而禁用的輸入方法不能解釋出於撰寫目的的事件。但要注意:無論輸入方法是啟用還是禁用,事件都會傳到該輸入方法;禁用輸入方法的撰寫功能可能仍會出於控制目的解釋包括為撰寫而啟用或禁用自身在內的事件。
對於由主機作業系統提供的輸入方法,並不總能確定是否支持此操作。例如,某個輸入方法可能只對某些語言環境啟用了撰寫功能,而對另一些語言環境不執行任何操作。對於此類別輸入方法,此方法有可能既不拋出 UnsupportedOperationException
,也不影響是否已啟用撰寫功能。
以下情況可調用此方法
InputContext.setCompositionEnabled
調用。
isCompositionEnabled
方法在沒有拋出異常的情況下返回,則當使用使用者介面或 InputContext.selectInputMethod
從另一種輸入方法切換到此輸入方法時調用。
enable
- 是否啟用輸入方法的撰寫功能
UnsupportedOperationException
- 如果此輸入方法不支持啟用/禁用操作isCompositionEnabled()
boolean isCompositionEnabled()
以下情況可調用此方法
InputContext.isCompositionEnabled
調用,並且
InputContext.selectInputMethod
從此輸入方法切換到另一種輸入方法時調用。
true
;否則返回 false
。
UnsupportedOperationException
- 如果此輸入方法不支持是否已啟用撰寫功能檢查setCompositionEnabled(boolean)
void reconvert()
InputMethodRequests.getSelectedText
方法從當前客戶端元件中獲得要恢復的文本。它也可以使用其他 InputMethodRequests
方法請求恢復操作所需的其他資訊。此操作產生的已混合且已提交文本將作為 InputMethodEvent
序列發送到客戶端元件。如果給定的文本不能恢復,則會把相同的文本作為已提交文本發送到客戶端元件。
可由 InputContext.reconvert
調用此方法。
UnsupportedOperationException
- 如果輸入方法不支持恢復操作。void dispatchEvent(AWTEvent event)
consume
方法;這樣做會導致該事件不能被指派到元件的事件處理方法或事件偵聽器。
如果事件為 InputEvent 或其子類別的實例,則會指派它們。這包括 AWT 類別 KeyEvent 和 MouseEvent 的實例。
可由 InputContext.dispatchEvent
調用此方法。
event
- 正指派到輸入方法的事件
NullPointerException
- 如果 event
為 nullvoid notifyClientWindowChange(Rectangle bounds)
InputMethodContext.enableClientWindowNotification
)。如果調用了輸入上下文的 removeNotify
方法,則會臨時掛起對此方法的調用;當新的客戶端元件啟動此輸入方法時,將恢復此方法的調用。將在以下情形調用此方法:
enableClientWindowNotification(inputMethod, true)
調用。enableClientWindowNotification(inputMethod, true)
後首次啟動它時調用。
bounds
- 螢幕上客戶端視窗的 bounds
;如果客戶端視窗已圖標化或不可見,則為 nullvoid activate()
如果某種輸入方法提供了自己的視窗,則此時它應確保所有必要的視窗都已打開並可見。
以下情況可調用此方法
InputContext.dispatchEvent
調用。
InputContext.selectInputMethod
從另一種輸入方法切換到此輸入方法時調用。
void deactivate(boolean isTemporary)
FocusEvent.isTemporary
中的參數含義相同。
如果輸入方法提供了自己的視窗,則此時只應關閉與當前撰寫功能相關的視窗(如尋找選擇視窗)。該輸入方法有可能被另一個客戶端元件再次啟動,並且關閉或重新打開較穩定的視窗(如控制面板)可能會造成不必要的螢幕閃爍。在啟動另一種輸入方法類別的實例之前,當前輸入方法將調用 hideWindows()
。
以下情況可調用此方法
InputContext.dispatchEvent
調用。
InputContext.selectInputMethod
從此輸入方法切換到另一種輸入方法時調用。
removeNotify
之前調用。
isTemporary
- 焦點更改是否為臨時的void hideWindows()
以下情況可調用此方法
只有當輸入方法處於非活動狀態時才能調用該方法。
void removeNotify()
可由 InputContext.removeNotify
調用此方法。
只有當輸入方法處於非活動狀態時才能調用該方法。
void endComposition()
編輯元件的文本可以在各種情況下調用此方法,例如,使用者可在文本內(但在撰寫文本外)移動插入點時,或者在將元件的文本保存到檔案上或複製到粘貼板上時都可調用。
以下情況可調用此方法
InputContext.endComposition
調用。
InputContext.dispatchEvent
調用
InputContext.selectInputMethod
從此輸入方法切換到另一種輸入方法時調用。
void dispose()
可由 InputContext.dispose
調用此方法。
只有當輸入方法處於非活動狀態時才能調用該方法。釋放之後,就無法針對此實例調用該介面的方法了。
Object getControlObject()
可由 InputContext.getInputMethodControlObject
調用此方法。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。