public interface InputMethod
InputMethodのサブクラスは、インプット・メソッド・フレームワークでロードしてから、API (InputContext.selectInputMethod
)またはユーザー・インタフェース(入力方式の切替えメニュー)を通じて選択できます。
- 導入されたバージョン:
- 1.3
-
メソッドのサマリー
修飾子と型 メソッド 説明 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)
入力ロケールの設定を試みます。
-
メソッドの詳細
-
setInputMethodContext
void setInputMethodContext(InputMethodContext context)インプット・メソッド・イベントのクライアント・コンポーネントへのディスパッチ、およびクライアント・コンポーネントからの情報の要求に使用する、インプット・メソッドのコンテキストを設定します。このメソッドは、インプット・メソッドのインスタンスを生成するとすぐに呼び出されます。
- パラメータ:
context
- このインプット・メソッド用のインプット・メソッド・コンテキスト- 例外:
NullPointerException
-context
がnullである場合
-
setLocale
boolean setLocale(Locale locale)入力ロケールの設定を試みます。 インプット・メソッドが目的のロケールをサポートしている場合、このメソッドはその動作を変更してロケールに対する入力をサポートし、trueを返します。 そうでない場合は、falseを返して動作の変更を行いません。このメソッドは、次の場合に呼び出されます。
InputContext.selectInputMethod
によって、- ユーザーがロケールを指定したか、あるいは以前に選択済みのインプット・メソッドの
getLocale
メソッドがnullでない値を返す場合に、ユーザー・インタフェースを使ってこのインプット・メソッドに切り替えるとき。
- パラメータ:
locale
- 入力するロケール- 戻り値:
- 指定されたロケールがサポートされているかどうか
- 例外:
NullPointerException
-locale
がnullである場合
-
getLocale
Locale getLocale()現在の入力ロケールを返します。 例外クラスの場合は、nullを返すことがあります。このメソッドは、次の場合に呼び出されます。
InputContext.getLocale
によって、および- ユーザー・インタフェースを使って、このインプット・メソッドから別のインプット・メソッドに切り替えるとき
- 戻り値:
- 現在の入力ロケール、またはnull
-
setCharacterSubsets
void setCharacterSubsets(Character.Subset[] subsets)このインプット・メソッドで入力可能なUnicode文字セットのサブセットを設定します。 すべての文字が使用できることを示す場合は、nullが渡されます。このメソッドは、次の場合に呼び出されます。
- このインプット・メソッドのインスタンスを生成した直後
- 別のインプット・メソッドからこのインプット・メソッドに切り替えるとき
InputContext.setCharacterSubsets
により。
- パラメータ:
subsets
- 文字入力に使用できるUnicode文字セットのサブセット
-
setCompositionEnabled
void setCompositionEnabled(boolean enable)パラメータenable
の値に応じて、変換のインプット・メソッドを使用可能または使用不可能にします。変換に使用できるインプット・メソッドは、変換と制御の2つの目的で、入ってくるイベントを解釈します。そのとき、使用不可能なインプット・メソッドは変換のためのイベントを解釈しません。 ただし、インプット・メソッドが使用可能かどうかに関係なく、イベントはインプット・メソッドに渡されます。また、変換に使用不可能なインプット・メソッドであっても、変換のために自身を使用可能または使用不可能にするなどの制御目的で、イベントを解釈することができます。
ホスト・オペレーティング・システムによって提供されるインプット・メソッドの場合、この操作がサポートされているかどうかを常に判断できるとは限りません。 たとえば、インプット・メソッドが特定のロケールでしか変換できず、ほかのロケールに対しては何も行わない場合があります。 そうしたインプット・メソッドの場合、このメソッドが
UnsupportedOperationException
をスローしない可能性がありますが、変換が可能であるかどうかに影響を与えることもありません。このメソッドは、次の場合に呼び出されます。
InputContext.setCompositionEnabled
によって、- 以前に選択済みのインプット・メソッドの
isCompositionEnabled
メソッドが例外をスローしないで返される場合に、ユーザー・インタフェースまたはInputContext.selectInputMethod
を使って、別のインプット・メソッドからこのインプット・メソッドに切り替えるとき。
- パラメータ:
enable
- 変換用のインプット・メソッドを使用可能にするかどうか- 例外:
UnsupportedOperationException
- このインプット・メソッドが、使用可能/使用不可能の操作をサポートしていない場合- 関連項目:
isCompositionEnabled()
-
isCompositionEnabled
boolean isCompositionEnabled()このインプット・メソッドが使用可能かどうか判別します。 変換に使用できるインプット・メソッドは、変換と制御の2つの目的で、入ってくるイベントを解釈します。そのとき、使用不可能なインプット・メソッドは変換のためのイベントを解釈しません。このメソッドは、次の場合に呼び出されます。
InputContext.isCompositionEnabled
によって、および- ユーザー・インタフェースまたは
InputContext.selectInputMethod
を使って、このインプット・メソッドから別のインプット・メソッドに切り替えるとき。
- 戻り値:
- このインプット・メソッドが変換のために使用可能な場合は
true
、そうでない場合はfalse
。 - 例外:
UnsupportedOperationException
- このインプット・メソッドが、変換のために使用可能かどうかの確認をサポートしていない場合- 関連項目:
setCompositionEnabled(boolean)
-
reconvert
void reconvert()再変換操作を開始します。 インプット・メソッドは、InputMethodRequests.getSelectedText
メソッドを使って、現在のクライアント・コンポーネントから再変換するテキストを取得します。 このメソッドは、ほかのInputMethodRequests
メソッドを使って再変換操作に必要な追加情報を要求できます。 この操作によって変換し、確定したテキストは、クライアント・コンポーネントにInputMethodEvent
のシーケンスとして送られます。 指定されたテキストが再変換できない場合は、同一のテキストを確定テキストとしてクライアント・コンポーネントに送る必要があります。このメソッドは
InputContext.reconvert
により呼び出されます。- 例外:
UnsupportedOperationException
- このインプット・メソッドが、再変換操作をサポートしていない場合。
-
dispatchEvent
void dispatchEvent(AWTEvent event)インプット・メソッドにイベントをディスパッチします。 フォーカスされたコンポーネントに対して入力メソッドのサポートが有効になっている場合、特定の型の着信イベントは、コンポーネント・メソッドまたはイベント・リスナーにディスパッチされる前に、このコンポーネントの現在の入力メソッドにディスパッチされます。 インプット・メソッドは、そのメソッドがイベントを処理する必要があるかどうかを決定します。 処理する必要がある場合は、イベントのconsume
メソッドも呼び出します。これにより、イベントはそのコンポーネントのイベント処理メソッドまたはイベント・リスナーにディスパッチされなくなります。イベントは、InputEventまたはそのサブクラスのインスタンスの場合にディスパッチされます。 これには、AWTクラスのKeyEventおよびMouseEventのインスタンスが含まれます。
このメソッドは
InputContext.dispatchEvent
により呼び出されます。- パラメータ:
event
- インプット・メソッドにディスパッチされるイベント- 例外:
NullPointerException
-event
がnullである場合
-
notifyClientWindowChange
void notifyClientWindowChange(Rectangle bounds)クライアントのウィンドウ位置または状態の変更を、このインプット・メソッドに通知します。 このメソッドは、このインプット・メソッドが入力コンテキストで現在使用されているインプット・メソッドであり、このメソッドに対する通知が使用可能である場合に呼び出されます(InputMethodContext.enableClientWindowNotification
を参照)。 入力コンテキストのremoveNotify
メソッドが呼び出されると、このメソッドの呼出しは一時的に保留され、新規のクライアント・コンポーネントがインプット・メソッドを起動すると再開されます。 このメソッドは次の場合に呼び出されます。- 現在のクライアント・コンポーネントを含むウィンドウの位置、サイズ、可視性、アイコンの表示状態が変更されたときか、このウィンドウが閉じられたとき
-
現在のクライアント・コンポーネントが存在する場合は、
enableClientWindowNotification(inputMethod, true)
から -
呼出し中に現在のクライアント・コンポーネントが使用できない場合、
enableClientWindowNotification(inputMethod, true)
の呼出し後に、最初にインプット・メソッドを起動するとき - 入力コンテキストのremoveNotifyメソッドの呼出し後に、新規クライアント・コンポーネントのインプット・メソッドを起動するとき
- パラメータ:
bounds
- 画面上のクライアント・ウィンドウのbounds
。クライアント・ウィンドウがアイコン化されるか、不可視の場合はnull
-
activate
void activate()即時入力処理のためのインプット・メソッドを起動します。インプット・メソッドが独自のウィンドウを所有する場合、この時点で、すべての必要なウィンドウが開いており可視であることを確認する必要があります。
このメソッドは、次の場合に呼び出されます。
- クライアント・コンポーネントがFOCUS_GAINEDイベントを受け取る際に、
InputContext.dispatchEvent
により - ユーザー・インタフェースまたは
InputContext.selectInputMethod
を使って、別のインプット・メソッドからこのインプット・メソッドに切り替えるとき。
- クライアント・コンポーネントがFOCUS_GAINEDイベントを受け取る際に、
-
deactivate
void deactivate(boolean isTemporary)インプット・メソッドを終了します。 isTemporary引数はFocusEvent.isTemporary
の引数と同じ意味を持ちます。インプット・メソッドが独自のウィンドウを所有する場合、ルックアップ選択ウィンドウなど現在の変換に関連するウィンドウのみが、ここで閉じられます。 このインプット・メソッドを、別のクライアント・コンポーネントのためにすぐに再起動することも可能ですが、コントロール・パネルなどのより持続的なウィンドウを閉じたりふたたび開いたりすると、不必要な画面フリッカが生成されます。 別のインプット・メソッド・クラスのインスタンスを起動する場合は、その前に
hideWindows()
を現在のインプット・メソッドで呼び出します。このメソッドは、次の場合に呼び出されます。
- クライアント・コンポーネントがFOCUS_LOSTイベントを受け取る際に、
InputContext.dispatchEvent
により - ユーザー・インタフェースまたは
InputContext.selectInputMethod
を使って、このインプット・メソッドから別のインプット・メソッドに切り替えるとき - 現在のクライアント・コンポーネントが削除される場合は、
removeNotify
が呼び出される前。
- パラメータ:
isTemporary
- フォーカス変更が一時的かどうか
- クライアント・コンポーネントがFOCUS_LOSTイベントを受け取る際に、
-
hideWindows
void hideWindows() -
removeNotify
void removeNotify()クライアント・コンポーネントが包含関係の階層から削除されているか、またはインプット・メソッドがそのコンポーネントで使用できなくなっていることを、インプット・メソッドに通知します。このメソッドは
InputContext.removeNotify
により呼び出されます。このメソッドは、インプット・メソッドが停止している場合にだけ呼び出されます。
-
endComposition
void endComposition()このコンテキストで現在進行中の入力変換を終了します。 プラットフォームおよびユーザー設定に応じて、未確定のテキストを確定または削除します。 テキストに対する変更はインプット・メソッド・イベントを使用してアクティブなコンポーネントに通知されます。テキスト編集コンポーネントは、たとえば、ユーザーがテキスト内で(変換テキストの外部に)挿入ポイントを移動したときや、コンポーネントのテキストがファイルに保存されたり、クリップボードにコピーされたときなど、さまざまな状況でこのメソッドを呼び出すことがあります。
このメソッドは、次の場合に呼び出されます。
InputContext.endComposition
によって、- 別のクライアント・コンポーネントに切り替える場合に、
InputContext.dispatchEvent
により - ユーザー・インタフェースまたは
InputContext.selectInputMethod
を使って、このインプット・メソッドから別のインプット・メソッドに切り替えるとき。
-
dispose
void dispose()このインプット・メソッドで使用されたリソースを解放します。 特に、インプット・メソッドはウィンドウを破棄し、必要がなくなったファイルを閉じる必要があります。このメソッドは
InputContext.dispose
により呼び出されます。このメソッドは、インプット・メソッドが停止している場合にだけ呼び出されます。 破棄したあとに、このインスタンスで呼び出されるこのインタフェースのメソッドはありません。
-
getControlObject
Object getControlObject()このインプット・メソッドの制御オブジェクトまたはnullを返します。 制御オブジェクトは、インプット・メソッドの動作を制御したり、インプット・メソッドから情報を取得するメソッドを提供します。 オブジェクトの型はインプット・メソッド固有のクラスです。 クライアントは既知のインプット・メソッド制御オブジェクト・クラスと結果を比較し、提供されるメソッドを呼び出すために適切なクラスへキャストする必要があります。このメソッドは
InputContext.getInputMethodControlObject
により呼び出されます。- 戻り値:
- 現在のインプット・メソッドの制御オブジェクト、またはnull
-