public class InputContext extends Object
デフォルトでは、Window のインスタンスごとに 1 つの InputContext のインスタンスが生成され、この入力コンテキストはウィンドウのコンテナ階層内にあるすべてのコンポーネントによって共有されます。ただし、ウィンドウ内では 1 回に 1 つのテキスト入力オペレーションだけが可能であり、テキストコンポーネント間でフォーカスを移動するときにはテキストを確定する必要があります。これが望ましくない場合、テキストコンポーネントは独自の入力コンテキストインスタンスを生成できます。
Java プラットフォームは、Java プログラミング言語で開発され、java.awt.im.spi
パッケージのインタフェースを使用し、拡張機能として Java SE 実行環境にインストールされるインプットメソッドをサポートします。また実装は、実行するプラットフォームのネイティブなインプットメソッドの使用をサポートできます。ただし、すべてのプラットフォームおよびロケールがインプットメソッドを提供するわけではありません。キーボードの配置はホストプラットフォームにより提供されます。
インプットメソッドは、(a) Java プログラミング言語で書かれたインプットメソッドが何もインストールされておらず、(b) Java プラットフォーム実装または基本となるプラットフォームがネイティブのインプットメソッドをサポートしていない場合は、使用できません。その場合でも、入力コンテキストを作成して使用することはできます。入力コンテキストの動作は、下記の個別メソッドによって指定されます。
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 の値に応じて、変換のために現在のインプットメソッドを使用可能または不可能にします。 |
protected InputContext()
getInstance()
を呼び出して取得します。public static InputContext getInstance()
public boolean selectInputMethod(Locale locale)
すべてのホストオペレーティングシステムが、現在選択されているネイティブのインプットメソッドまたはキーボードの配置のロケールを判定したり、ロケールによってネイティブのインプットメソッドまたはキーボードの配置を選択する API を提供しているわけではありません。このような API を提供しないホストオペレーティングシステムの場合、selectInputMethod
はホストオペレーティングシステムが提供するネイティブのインプットメソッドまたはキーボードの配置が、システムのデフォルトロケールだけをサポートするものと見なします。
たとえば、ユーザーが挿入ポイントを変更する場合、テキスト編集コンポーネントからこのメソッドを呼び出すことにより、ユーザーが挿入ポイント前後のテキストの言語でただちに入力を続行できます。
locale
- 目的の新しいロケール。NullPointerException
- locale
が null である場合public Locale getLocale()
InputMethod.getLocale()
メソッドが null を返す場合、null が返されます。
すべてのホストオペレーティングシステムが、現在選択されているネイティブのインプットメソッドまたはキーボード配置のロケールを判定する API を提供しているわけではありません。このような API を提供しないホストオペレーティングシステムの場合、getLocale
は、ホストオペレーティングシステムが提供するすべてのネイティブなインプットメソッドまたはキーボード配置の現在のロケールを、システムのデフォルトロケールと見なします。
public void setCharacterSubsets(Character.Subset[] subsets)
subsets
- 文字入力に使用できる Unicode 文字セットのサブセットpublic void setCompositionEnabled(boolean enable)
enable
の値に応じて、変換のために現在のインプットメソッドを使用可能または不可能にします。
変換に使用できるインプットメソッドは、変換と制御の 2 つの目的で、入ってくるイベントを解釈します。そのとき、使用不可能なインプットメソッドは変換のためのイベントを解釈しません。ただし、インプットメソッドが使用可能かどうかに関係なく、イベントはインプットメソッドに渡されます。また、変換に使用不可能なインプットメソッドであっても、変換のために自身を使用可能または使用不可能にするなどの制御目的で、イベントを解釈することができます。
ホストオペレーティングシステムによって提供されるインプットメソッドの場合、この操作がサポートされているかどうかを常に判断できるとは限りません。たとえば、インプットメソッドが特定のロケールでしか変換できず、ほかのロケールに対しては何も行わない場合があります。そうしたインプットメソッドの場合、このメソッドが UnsupportedOperationException
をスローしない可能性がありますが、変換が可能であるかどうかに影響を与えることもありません。
enable
- 現在のインプットメソッドを変換のために使用可能にするかどうかUnsupportedOperationException
- 現在使用できるインプットメソッドがないか、あるいは現在のインプットメソッドが使用可能/使用不可能の操作をサポートしていない場合isCompositionEnabled()
public boolean isCompositionEnabled()
true
、そうでない場合は false
UnsupportedOperationException
- 現在使用できるインプットメソッドがないか、あるいは現在のインプットメソッドが変換のために使用可能かどうかの確認をサポートしていない場合setCompositionEnabled(boolean)
public void reconvert()
InputMethodRequests.getSelectedText
メソッドを使って、再変換するテキストをクライアントコンポーネントから取得します。インプットメソッドによる詳細情報の要求を処理するために、ほかの InputMethodRequests
メソッドを用意しておく必要があります。変換されたテキストまたは確定テキスト、あるいはその両方が、InputMethodEvent
の処理としてクライアントコンポーネントへ送られます。指定されたテキストをインプットメソッドが再変換できない場合、そのテキストが InputMethodEvent
の確定テキストとして返されます。UnsupportedOperationException
- 現在使用できるインプットメソッドがないか、あるいは現在のインプットメソッドが再変換操作をサポートしていない場合。public void dispatchEvent(AWTEvent event)
event
- イベントNullPointerException
- event
が null である場合public void removeNotify(Component client)
Component.removeNotify
メソッドから呼び出されます。このコンポーネントに対するインプットメソッドからの入力が保留中の場合、その入力は破棄されます。使用できるインプットメソッドがない場合、このメソッドは無効です。client
- クライアントコンポーネントNullPointerException
- client
が null である場合public void endComposition()
テキスト編集コンポーネントは、たとえば、ユーザーがテキスト内で (変換テキストの外部に) 挿入ポイントを移動したときや、コンポーネントのテキストがファイルに保存されたり、クリップボードにコピーされたときなど、さまざまな状況でこのメソッドを呼び出すことがあります。
public void dispose()
public Object getInputMethodControlObject()
使用できるインプットメソッドがないか、あるいは現在のインプットメソッドがインプットメソッド制御オブジェクトを提供していない場合、null が返されます。
バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.