JavaTM 2 Platform
Standard Ed. 5.0

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


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 を返して動作の変更を行いません。

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

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

getLocale

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

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

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

setCharacterSubsets

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

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

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

setCompositionEnabled

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

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

ホストオペレーティングシステムによって提供されるインプットメソッドの場合、この操作がサポートされているかどうかを常に判断できるとは限りません。たとえば、インプットメソッドが特定のロケールでしか変換できず、ほかのロケールに対しては何も行わない場合があります。そうしたインプットメソッドの場合、このメソッドが UnsupportedOperationException をスローしない可能性がありますが、変換が可能であるかどうかに影響を与えることもありません。

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

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

isCompositionEnabled

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

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

戻り値:
このインプットメソッドが変換のために使用可能な場合は 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 メソッドが呼び出されると、このメソッドの呼び出しは一時的に保留され、新規のクライアントコンポーネントがインプットメソッドを起動すると再開されます。このメソッドは次の場合に呼び出されます。

パラメータ:
bounds - 画面上のクライアントウィンドウの bounds。クライアントウィンドウがアイコン化されるか、不可視の場合は null

activate

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

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

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

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


deactivate

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

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

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

このメソッドは、インプットメソッドがアクティブな場合にだけ呼び出されます。

パラメータ:
isTemporary - フォーカス変更が一時的かどうか

hideWindows

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

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

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


removeNotify

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

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

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


endComposition

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

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

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


dispose

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

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

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


getControlObject

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

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

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

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。