JavaTM 2 Platform
Std. Ed. v1.3

java.awt.im
クラス InputContext

java.lang.Object
  |
  +--java.awt.im.InputContext

public class InputContext
extends Object

InputContext オブジェクトは、テキスト編集コンポーネントとインプットメソッド間の通信を管理します。InputContext オブジェクトは、両者の間でイベントをディスパッチし、インプットメソッドからテキスト編集コンポーネントへ情報の要求を転送します。また、InputContext オブジェクトは、テキスト編集コンポーネントがロケールによってインプットメソッドを選択できるようにします。

デフォルトでは、Window のインスタンスごとに 1 つの InputContext のインスタンスが生成され、この入力コンテキストはウィンドウのコンテナ階層内にあるすべてのコンポーネントによって共有されます。ただし、ウィンドウ内では 1 回に 1 つのテキスト入力オペレーションだけが可能であり、テキストコンポーネント間でフォーカスを移動するときにはテキストを確定する必要があります。これが望ましくない場合、テキストコンポーネントは独自の入力コンテキストインスタンスを生成できます。

Java 2 プラットフォームは、Java プログラミング言語で開発され、java.awt.im.spi パッケージのインタフェースを使用し、拡張機能として Java 2 実行環境にインストールされるインプットメソッドをサポートします。実装はまた、実行するプラットフォームのネイティブなインプットメソッドの使用をサポートできます。ただし、すべてのプラットフォームおよびロケールがインプットメソッドを提供するわけではありません。

インプットメソッドは、(a) Java プログラミング言語で書かれたインプットメソッドが何もインストールされておらず、(b) Java 2 実装または基本となるプラットフォームがネイティブなインプットメソッドをサポートしていない場合は、使用できません。その場合でも、入力コンテキストを作成して使用することはできます。入力コンテキストの動作は、下記の個別メソッドによって指定されます。

導入されたバージョン:
1.2
関連項目:
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
 

コンストラクタの詳細

InputContext

protected InputContext()
InputContext を構築します。このメソッドは、クライアントが InputContext のインスタンスを直接生成できないよう保護されています。入力コンテキストは getInstance() を呼び出して取得します。
メソッドの詳細

getInstance

public static InputContext getInstance()
新しい InputContext インスタンスを返します。

selectInputMethod

public boolean selectInputMethod(Locale locale)
指定されたロケールをサポートするインプットメソッドを選択します。現在選択されているインプットメソッドが指定されたロケールをサポートする場合や、そのロケールをサポートする利用可能なインプットメソッドがない場合には、現在のインプットメソッドがアクティブなままです。そうでない場合は、指定されたロケールでのテキスト入力をサポートするインプットメソッドが選択されます。別のインプットメソッドに切り替える前に、未確定のテキストは確定されます。指定されたロケールをサポートする使用可能なインプットメソッドがない場合は、false が返されます。

たとえば、ユーザが挿入ポイントを変更するときに、ユーザがこの挿入ポイントを囲むテキストの言語でただちに入力を続けられるように、テキスト編集コンポーネントがこのメソッドを呼び出すことがあります。

パラメータ:
locale - 目的の新しいロケール
戻り値:
この呼び出しのあとでアクティブになるインプットメソッドが、目的のロケールをサポートしているかどうか
例外:
NullPointerException - locale が null の場合

getLocale

public Locale getLocale()
現在のインプットメソッドの現在のロケールを返します。入力コンテキストが現在のインプットメソッドまたはインプットメソッドの InputMethod.getLocale() を持たない場合、null を返します。
戻り値:
現在のインプットメソッドの現在のロケール
導入されたバージョン:
1.3

setCharacterSubsets

public void setCharacterSubsets(Character.Subset[] subsets)
この入力コンテキストのインプットメソッドで入力できる Unicode 文字セットのサブセットを設定します。null を渡すと、すべての文字が使用できます。初期値は null です。この設定は現在のインプットメソッドと、この呼び出しが行われたあとで選択されるインプットメソッドに適用されます。ただし、この設定をすべてのホストインプットメソッドに渡すことが可能なわけではないので、この呼び出しだけでは目的の結果が得られない場合もあります。そのためアプリケーションが自身で文字を確認する必要は残ります。使用できるインプットメソッドがない場合、このメソッドは無効です。
パラメータ:
subsets - 文字入力に使用できる Unicode 文字セットのサブセット

setCompositionEnabled

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

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

パラメータ:
enable - 現在のインプットメソッドの変換を使用可能にするかどうか
例外:
UnsupportedOperationException - 現在使用できるインプットメソッドがないか、あるいは現在のインプットメソッドが使用可能と不可能の操作をサポートしていない場合
導入されたバージョン:
1.3
関連項目:
isCompositionEnabled()

isCompositionEnabled

public boolean isCompositionEnabled()
現在のインプットメソッドの変換が使用可能かどうか判別します。変換に使用できるインプットメソッドは、変換目的と制御目的の両方の受信イベントを解釈します。使用不可能なインプットメソッドは変換のためのイベントを解釈しません。
戻り値:
現在のインプットメソッドの変換が使用可能な場合は true、そうでない場合は false
例外:
UnsupportedOperationException - 現在使用できるインプットメソッドがないか、あるいは現在のインプットメソッドが、変換が使用可能かどうかの確認をサポートしていない場合
導入されたバージョン:
1.3
関連項目:
setCompositionEnabled(boolean)

reconvert

public void reconvert()
現在のインプットメソッドに、現在のクライアントコンポーネントからのテキストを再変換するよう依頼します。インプットメソッドは、InputMethodRequests.getSelectedText メソッドを使って、再変換するテキストをクライアントコンポーネントから取得します。インプットメソッドによる詳細情報の要求を処理するために、他の InputMethodRequests メソッドを用意しておく必要があります。変換されたテキストまたは確定テキスト、あるいはその両方が、InputMethodEvent の処理としてクライアントコンポーネントへ送られます。指定されたテキストをインプットメソッドが再変換できない場合、そのテキストが InputMethodEvent の確定テキストとして返されます。
例外:
UnsupportedOperationException - 現在使用できるインプットメソッドがないか、あるいは現在のインプットメソッドが変換操作をサポートしていない場合
導入されたバージョン:
1.3

dispatchEvent

public void dispatchEvent(AWTEvent event)
アクティブなインプットメソッドにイベントをディスパッチします。AWT によって呼び出されます。使用できるインプットメソッドがない場合、イベントは処理されません。
パラメータ:
event - イベント
例外:
NullPointerException - event が null の場合

removeNotify

public void removeNotify(Component client)
包含関係の階層からクライアントコンポーネントが削除されたか、またはコンポーネントでインプットメソッドがサポートされなくなったことを入力コンテキストに通知します。このメソッドは、通常、クライアントコンポーネントの Component.removeNotify メソッドから呼び出されます。このコンポーネントでインプットメソッドから保留中の入力がある場合、その入力は破棄されます。使用できるインプットメソッドがない場合、このメソッドは無効です。
パラメータ:
client - クライアントコンポーネント
例外:
NullPointerException - client が null の場合

endComposition

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

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


dispose

public void dispose()
入力コンテキストを破棄し、入力コンテキストが使用しているリソースを解放します。各ウィンドウのデフォルト入力コンテキストの AWT によって呼び出されます。使用できるインプットメソッドがない場合、このメソッドは無効です。

getInputMethodControlObject

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

使用できるインプットメソッドがないか、あるいは現在のインプットメソッドがインプットメソッド制御オブジェクトを提供していない場合、null が返されます。

戻り値:
現在のインプットメソッドの制御オブジェクト、または 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.