|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
java.lang.Object java.awt.im.InputContext
public class InputContext
提供控制諸如輸入方法和鍵盤佈局之類別的文本輸入設施的方法。兩種方法可以處理輸入方法和鍵盤佈局:selectInputMethod 讓客戶端元件根據語言環境選擇輸入方法或鍵盤佈局;getLocale 讓客戶端元件獲得當前輸入方法或鍵盤佈局的語言環境。其他方法更明確地支持與輸入方法之間的交互:它們讓客戶端元件控制輸入方法的行為,並將客戶端元件中的事件指派到該輸入方法。
在預設情況下,每個 Window 實例創建一個 InputContext 實例,並且視窗的容器層次結構內部所有元件都共享此輸入上下文。不過,這意味著在一個視窗中每一次只能進行一項文本輸入操作,並且該文本需要在將焦點從一個文本元件中移到另一文本元件時提交。如果不需要此項操作,則文本元件可以創建自己的輸入上下文實例。
Java 平臺支持使用 java.awt.im.spi
套件中的介面在 Java 程式語言中開發而且作為擴展安裝在 Java SE 運行時環境中的輸入方法。實作還可以支持使用其運行平臺上的本機輸入方法;不過,不是所有平臺和語言環境都提供輸入方法。鍵盤佈局由主機平臺提供。
如果 (a) 沒有安裝使用 Java 程式語言編寫的輸入方法和 (b) Java 平臺實作或基礎平臺不支持本機輸入方法,則輸入方法不可用。在這種情況下,仍要創建和使用輸入上下文;其行為可以根據下面的具體方法指定。
Component.getInputContext()
,
Component.enableInputMethods(boolean)
建構子摘要 | |
---|---|
protected |
InputContext()
建構一個 InputContext。 |
方法摘要 | |
---|---|
void |
dispatchEvent(AWTEvent event)
將事件指派到處於活動狀態的輸入方法。 |
void |
dispose()
釋放由此輸入上下文使用過的資源。 |
void |
endComposition()
結束當前可能在此上下文進行的任何輸入撰寫。 |
Object |
getInputMethodControlObject()
返回當前輸入方法中的一個控制物件,或 null。 |
static InputContext |
getInstance()
返回新 InputContext 實例。 |
Locale |
getLocale()
返回當前輸入方法或鍵盤佈局的當前語言環境。 |
boolean |
isCompositionEnabled()
確定是否已啟用當前輸入方法以進行撰寫。 |
void |
reconvert()
讓當前輸入方法從當前客戶端元件中恢復文本。 |
void |
removeNotify(Component client)
通知輸入上下文,客戶端元件已從它的套件含層次結構中移除,或該元件已禁用輸入方法支持。 |
boolean |
selectInputMethod(Locale locale)
試圖選擇一個支持給定語言環境的輸入方法或鍵盤佈局,並返回指示是否成功選定此類別輸入方法或鍵盤佈局的值。 |
void |
setCharacterSubsets(Character.Subset[] subsets)
設置此輸入上下文的輸入方法應允許輸入的 Unicode 字元集的子集。 |
void |
setCompositionEnabled(boolean enable)
根據參數 enable 的值啟用或禁用當前輸入方法進行撰寫。 |
從類別 java.lang.Object 繼承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
建構子詳細資訊 |
---|
protected InputContext()
getInstance()
獲得。
方法詳細資訊 |
---|
public static InputContext getInstance()
public boolean selectInputMethod(Locale locale)
不是所有主機作業系統都提供 API 來確定當前已選定的本機輸入方法或鍵盤佈局的語言環境,和選擇語言環境的本機輸入方法或鍵盤佈局。對於未提供此類別 API 的主機作業系統而言,selectInputMethod
假定該主機作業系統提供的本機輸入方法或鍵盤佈局只支持該系統預設的語言環境。
例如,當使用者更改插入點時,文本編輯元件可能調用此方法,讓使用者立即使用周圍文本的語言繼續鍵入。
locale
- 所需的新語言環境。
NullPointerException
- 如果 locale
為 nullpublic Locale getLocale()
InputMethod.getLocale()
方法返回 null,則返回 null。
不是所有主機作業系統都提供 API 來確定當前已選定的本機輸入方法或鍵盤佈局的語言環境。對於未提供此類別 API 的主機作業系統而言,getLocale
假定該主機作業系統提供的所有本機輸入方法或鍵盤佈局的當前語言環境是該系統的預設語言環境。
public void setCharacterSubsets(Character.Subset[] subsets)
subsets
- 可以從其輸入字元的 Unicode 字元集的子集public void setCompositionEnabled(boolean enable)
enable
的值啟用或禁用當前輸入方法進行撰寫。
撰寫中已啟用的輸入方法將解釋用於撰寫和控制的傳入事件,而禁用的輸入方法不會解釋用於撰寫的事件。但要注意,不管是否已啟用該輸入方法,都要將事件傳入其中;已禁用進行撰寫的輸入方法可能仍會因控制目的而解釋事件,包括啟用或禁用自身進行撰寫。
因為輸入方法是由主機作業系統提供的,所以可能無法一直確定是否支持此項操作。例如,一個輸入方法可能只對某些語言環境啟用撰寫,而對另一些語言環境不執行任何操作。對於此類別輸入方法,此方法可能不會拋出 UnsupportedOperationException
,並且也不會影響是否已啟用撰寫。
enable
- 是否啟用撰寫的當前輸入方法
UnsupportedOperationException
- 如果沒有當前可用的輸入方法或當前輸入方法不支持啟用/禁用操作isCompositionEnabled()
public boolean isCompositionEnabled()
true
;否則返回 false
UnsupportedOperationException
- 如果沒有當前可用的輸入方法或當前輸入方法不支持檢查是否已啟用撰寫setCompositionEnabled(boolean)
public void reconvert()
InputMethodRequests.getSelectedText
方法獲得要從客戶端元件恢復的文本。必須準備其他 InputMethodRequests
方法來處理該輸入方法需要的深層資訊請求。將撰寫文本和/或提交文本作為 InputMethodEvent
的序列發送到客戶端元件。如果輸入方法不能恢復給定的文本,則會將該文本作為 InputMethodEvent
中的提交文本返回。
UnsupportedOperationException
- 如果沒有當前可用的輸入方法,或當前輸入方法不支持恢復操作。public void dispatchEvent(AWTEvent event)
event
- 事件
NullPointerException
- 如果 event
為 nullpublic void removeNotify(Component client)
Component.removeNotify
方法中調用。丟棄此元件的輸入方法中可能掛起的輸入。如果沒有可用的輸入方法,則此方法不起作用。
client
- 客戶端元件
NullPointerException
- 如果 client
為 nullpublic void endComposition()
編輯元件的文本可以在各種情況下調用此方法,例如,使用者可在文本內(但在撰寫文本外)移動插入點時,或者在將元件的文本保存到檔案上或複製到粘貼板上時都可調用。
public void dispose()
public Object getInputMethodControlObject()
如果沒有可用的輸入方法,或當前輸入方法沒有提供輸入方法控制物件,則返回 null。
|
JavaTM 2 Platform Standard Ed. 6 |
|||||||||
上一個類別 下一個類別 | 框架 無框架 | |||||||||
摘要: 巢狀 | 欄位 | 建構子 | 方法 | 詳細資訊: 欄位 | 建構子 | 方法 |
版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only。