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, 2016, Oracle and/or its affiliates. All rights reserved.Use is subject to license termsDocumentation Redistribution Policyも参照してください。