JavaTM 2 Platform
Standard Ed. 5.0

java.awt.im
クラス InputContext

java.lang.Object
  上位を拡張 java.awt.im.InputContext

public class InputContext
extends Object

インプットメソッドおよびキーボードの配置など、テキスト入力機能を制御するメソッドを提供します。次の 2 つのメソッドが、インプットメソッドとキーボードの配置の両方を処理します。selectInputMethod は、クライアントコンポーネントがロケールによってインプットメソッドとキーボードの配置を選択できるようにします。getLocale は、クライアントコンポーネントが現在のインプットメソッドとキーボードの配置のロケールを取得できるようにします。その他のメソッドは、インプットメソッドとの対話をより具体的にサポートします。これらのメソッドは、クライアントコンポーネントがインプットメソッドの動作を制御し、クライアントコンポーネントからインプットメソッドにイベントをディスパッチできるようにします。

デフォルトでは、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 が返されます。

すべてのホストオペレーティングシステムが、現在選択されているネイティブのインプットメソッドまたはキーボードの配置のロケールを判定したり、ロケールによってネイティブのインプットメソッドまたはキーボードの配置を選択する API を提供しているわけではありません。このような API を提供しないホストオペレーティングシステムの場合、selectInputMethod はホストオペレーティングシステムが提供するネイティブのインプットメソッドまたはキーボードの配置が、システムのデフォルトロケールだけをサポートするものと見なします。

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

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

getLocale

public Locale getLocale()
現在のインプットメソッドまたはキーボード配置の現在のロケールを返します。入力コンテキストが現在のインプットメソッドまたはキーボード配置を保持しない場合、または現在のインプットメソッドの InputMethod.getLocale() メソッドが null を返す場合、null が返されます。

すべてのホストオペレーティングシステムが、現在選択されているネイティブのインプットメソッドまたはキーボード配置のロケールを判定する API を提供しているわけではありません。このような API を提供しないホストオペレーティングシステムの場合、getLocale は、ホストオペレーティングシステムが提供するすべてのネイティブなインプットメソッドまたはキーボード配置の現在のロケールを、システムのデフォルトロケールと見なします。

戻り値:
現在のインプットメソッドまたはキーボード配置の現在のロケール
導入されたバージョン:
1.3

setCharacterSubsets

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

パラメータ:
subsets - 文字入力に使用できる Unicode 文字セットのサブセット

setCompositionEnabled

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

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

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

パラメータ:
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()
入力コンテキストを破棄し、入力コンテキストが使用しているリソースを解放します。呼び出しは、各 Window のデフォルト入力コンテキストの AWT により行われます。使用できるインプットメソッドがない場合、このメソッドは無効です。


getInputMethodControlObject

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

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

戻り値:
現在のインプットメソッドの制御オブジェクト、または 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 も参照してください。