JavaTM 2 Platform
Std. Ed. v1.3

java.awt.im.spi
インタフェース InputMethod


public interface InputMethod

複合テキスト入力をサポートするインプットメソッドのためのインタフェースを定義します。従来より、インプットメソッドは、中国語、日本語、韓国語などの標準サイズのキーボードでは表現できない文字が多数存在する言語へのテキスト入力をサポートしています。しかし、このようなインプットメソッドは、英語、またはタイ語の文字再順序付けのための音声テキスト入力のサポートにも使用されています。

InputMethod のサブクラスは、Input Method Framework でロードしてから、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

public void setInputMethodContext(InputMethodContext context)
インプットメソッドイベントのクライアントコンポーネントへのディスパッチ、およびクライアントコンポーネントの情報の要求に使用する、インプットメソッドのコンテキストを設定します。

このメソッドは、インプットメソッドのインスタンスを生成するとすぐに呼び出されます。

パラメータ:
context - このインプットメソッドのためのインプットメソッドコンテキスト
例外:
NullPointerException - context が null の場合

setLocale

public boolean setLocale(Locale locale)
入力ロケールの設定を試みます。インプットメソッドが要求するロケールをサポートしている場合、このメソッドはその動作を変更してロケールに対する入力をサポートし、true を返します。そうでない場合は、false を返して動作の変更を行いません。

このメソッドは、次のときに呼び出されます。

パラメータ:
locale - 入力するロケール
戻り値:
指定されたロケールがサポートされているかどうか
例外:
NullPointerException - locale が null の場合

getLocale

public Locale getLocale()
現在の入力ロケールを返します。例外クラスの場合は、null を返すことがあります。

このメソッドは、次のときに呼び出されます。

戻り値:
現在の入力ロケール、または null

setCharacterSubsets

public void setCharacterSubsets(Character.Subset[] subsets)
このインプットメソッドで入力可能な Unicode 文字セットのサブセットを設定します。すべての文字が使用できることを示す場合は、null が渡されます。

このメソッドは、次のときに呼び出されます。

パラメータ:
subsets - 文字が入力される Unicode 文字セットのサブセット

setCompositionEnabled

public void setCompositionEnabled(boolean enable)
パラメータ enable の値に応じて、変換のインプットメソッドを使用可能または使用不可能にします。

変換のために使用可能なインプットメソッドは、変換と制御の 2 つの目的で、入ってくるイベントを解釈します。一方、使用不可能なインプットメソッドは変換のためにイベントを解釈しません。ただし、インプットメソッドが使用可能かどうかに関係なく、イベントはインプットメソッドに渡されます。また、変換に使用不可能なインプットメソッドであっても、変換のために自身を使用可能または使用不可能にするなどの制御目的で、イベントを解釈することができます。

このメソッドは、次のときに呼び出されます。

パラメータ:
enable - 変換のためのインプットメソッドを使用可能にするかどうか
例外:
UnsupportedOperationException - このインプットメソッドが、使用可能/使用不可能オペレーションをサポートしない場合
関連項目:
isCompositionEnabled()

isCompositionEnabled

public boolean isCompositionEnabled()
このインプットメソッドが使用可能かどうか判別します。変換に使用できるインプットメソッドは、変換と制御の 2 つの目的で、入ってくるイベントを解釈します。そのとき、使用不可能なインプットメソッドは変換のためのイベントを解釈しません。

このメソッドは、次のときに呼び出されます。

戻り値:
このインプットメソッドが変換のために使用可能な場合は true、そうでない場合は false
例外:
UnsupportedOperationException - このインプットメソッドが、自身が変換のために使用可能かどうかの確認ができない場合
関連項目:
setCompositionEnabled(boolean)

reconvert

public void reconvert()
再変換操作を開始します。インプットメソッドは、InputMethodRequests.getSelectedText メソッドを使って、現在のクライアントコンポーネントから再変換するテキストを取得します。このメソッドは、他の InputMethodRequests メソッドを使って再変換操作に必要な追加情報を要求できます。この操作が変換して確定したテキストは、クライアントコンポーネントに InputMethodEvent のシーケンスとして送られます。指定されたテキストが再変換できない場合に、同一のテキストが確定テキストとしてクライアントコンポーネントに送られることはありません。

InputContext.reconvert がこのメソッドを呼び出します。

例外:
UnsupportedOperationException - このインプットメソッドが、再変換操作をサポートしない場合

dispatchEvent

public void dispatchEvent(AWTEvent event)
インプットメソッドにイベントをディスパッチします。インプットメソッドのサポートが、フォーカスされたコンポーネントで使用可能な場合は、特定のタイプの入力イベントが、コンポーネントイベント処理メソッドまたはイベントリスナーにディスパッチされる前に、このコンポーネントのインプットメソッドにディスパッチされます。インプットメソッドは、そのメソッドがイベントを処理する必要があるかどうかを決定します。処理する必要がある場合は、イベントの consume メソッドも呼び出します。これにより、イベントはそのコンポーネントのイベント処理メソッドまたはリスナーにディスパッチされないようになります。

イベントは、InputEvent またはそのサブクラスのインスタンスの場合にディスパッチされます。AWT クラスの KeyEvent と MouseEvent のインスタンスの場合も含みます。

InputContext.dispatchEvent がこのメソッドを呼び出します。

パラメータ:
event - インプットメソッドにディスパッチされるイベント
例外:
NullPointerException - event が null の場合

notifyClientWindowChange

public void notifyClientWindowChange(Rectangle bounds)
クライアントのウィンドウ位置または状態の変更を、このインプットメソッドに通知します。このメソッドは、このインプットメソッドが入力コンテキストで現在使用されているインプットメソッドであり、このメソッドに対する通知が使用可能である場合に呼び出されます (InputMethodContext.enableClientWindowNotification を参照)。入力コンテキストの removeNotify メソッドが呼び出されると、このメソッドの呼び出しは一時的に保留され、新規のクライアントコンポーネントがインプットメソッドを起動すると再開されます。このメソッドは次の場合に呼び出されます。
パラメータ:
bounds - 画面上のクライアントウィンドウの 境界。クライアントウィンドウがアイコン化されるか、不可視の場合は null

activate

public void activate()
即時入力処理のためのインプットメソッドを起動します。

インプットメソッドが独自のウィンドウを所有する場合、この時点で、すべての必要なウィンドウが開いており可視であることを確認する必要があります。

このメソッドは、次のときに呼び出されます。

このメソッドは、インプットメソッドが停止している場合にだけ呼び出されます。新たにインスタンスが生成されたインプットメソッドは停止しているものと見なされます。

deactivate

public void deactivate(boolean isTemporary)
インプットメソッドを終了します。isTemporary 引数は FocusEvent.isTemporary の引数と同じ意味を持ちます。

インプットメソッドが独自のウィンドウを所有する場合、ルックアップ選択ウィンドウなど現在の変換に関連するウィンドウのみが、ここで閉じます。このインプットメソッドをすぐに、別のクライアントコンポーネントのために再起動することも可能ですが、コントロールパネルなどのより持続的なウィンドウを閉じたり再び開いたりすると、不必要な画面フリッカーが生成されます。別のインプットメソッドクラスのインスタンスを起動する場合は、その前に hideWindows() を現在のインプットメソッドで呼び出します。

このメソッドは、次のときに呼び出されます。

このメソッドは、インプットメソッドがアクティブな場合にだけ呼び出されます。
パラメータ:
isTemporary - フォーカス変更が一時的かどうか

hideWindows

public void hideWindows()
このインプットメソッドのインスタンスまたはクラスが開いたすべてのウィンドウを閉じ、または隠します。

このメソッドは、次のときに呼び出されます。

このメソッドは、インプットメソッドが停止している場合にだけ呼び出されます。

removeNotify

public void removeNotify()
クライアントコンポーネントが包含関係の階層から削除されているか、またはインプットメソッドがそのコンポーネントで使用できなくなっていることを、インプットメソッドに通知します。

このメソッドは InputContext.removeNotify によって呼び出されます。

このメソッドは、インプットメソッドが停止している場合にだけ呼び出されます。


endComposition

public void endComposition()
このコンテキストで現在進行中の入力変換を終了します。プラットフォームおよびユーザ設定に応じて、未確定のテキストを確定または削除します。テキストに対する変更はインプットメソッドイベントを使用してアクティブなコンポーネントに通知されます。

テキスト編集コンポーネントは、たとえば、ユーザがテキスト内で (変換テキストの外部に) 挿入ポイントを移動したときや、コンポーネントのテキストがファイルに保存されたり、クリップボードにコピーされたときなど、さまざまな状況でこのメソッドを呼び出すことがあります。

このメソッドは、次のときに呼び出されます。


dispose

public void dispose()
インプットメソッドを破棄して、このメソッドが使用したリソースを解放します。特に、インプットメソッドはウィンドウを破棄し、必要がなくなったファイルを閉じる必要があります。

このメソッドは InputContext.dispose によって呼び出されます。

このメソッドは、インプットメソッドが停止している場合にだけ呼び出されます。破棄したあとに、このインスタンスで呼び出されるこのインタフェースのメソッドはありません。


getControlObject

public Object getControlObject()
このインプットメソッドの制御オブジェクトまたは null を返します。制御オブジェクトは、インプットメソッドの動作を制御したり、インプットメソッドから情報を取得するメソッドを提供します。オブジェクトの型はインプットメソッド固有のクラスです。クライアントは既知のインプットメソッド制御オブジェクトクラスと結果を比較し、提供されるメソッドを呼び出すために適切なクラスへキャストする必要があります。

このメソッドは InputContext.getInputMethodControlObject によって呼び出されます。

戻り値:
現在のインプットメソッドの制御オブジェクト、または null

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.