Input Method Framework のデモ
このアプレットには 4 種類のテキストコンポーネントが含まれていて、それぞれが JDK 1.2 のインプットメソッドとの異なる対話方法を示しています。このアプレットは、日本語版 Windows NT、Chinese Language Kit のある Macintosh、韓国語ロケールでの Solaris などの、インプットメソッドを使うプラットフォームとロケールで実行する必要があります。また、JDK 1.2 以上が必要です。
最初の 3 つのコンポーネントは軽量コンポーネントです。つまり、Java API を使って、イベントの処理とテキストの描画を行います。最後のコンポーネントはピアコンポーネントです。つまり、イベントの処理とテキストの描画は、背後のプラットフォームが提供するテキスト編集エンジンが行います。ピアコンポーネントは JDK 1.0 の AWT で広く使われていますが、軽量コンポーネントは JDK 1.1 で導入されたもので、Swing クラスライブラリの基礎になっています。
軽量コンポーネントは、次に示す機能を備えています。
- 非クライアントは、インプットメソッドと連携しない
- パッシブクライアントは、もっとも簡単な方法でインプットメソッドと連携する。変換処理はすべて Input Method Framework に依存し、確定したテキストだけを受け取る
- アクティブクライアントは、Input Method Framework の API を使って、オンザスポット方式 (インライン方式とも呼ぶ) のテキスト変換を実装する
プラットフォームのデフォルトのインプットメソッドを使い、日本語で各コンポーネントの違いを調べるには、コンポーネントの内側をクリックしてフォーカスを設定し、インプットメソッドを有効にして (Windows の場合は Alt + ` キー、Macintosh の場合はキーボードメニューから選択、Solaris の場合は Ctrl + スペースキー)、「nihongo」と入力します。各コンポーネントの動作は、次のようになります。
- 非クライアント: nihongo というテキストがコンポーネントに入力される
- パッシブクライアント: 別のウィンドウが開き、文字はそのウィンドウに入力されて、入力とともに「にほんご」というひらがなに変換される
- アクティブクライアント: 文字はコンポーネントに直接入力されて、入力とともに「にほんご」というひらがなに変換される
- ピアコンポーネント: 動作はプラットフォームにより異なるが、アクティブクライアントと同様の動作がもっとも一般的である。入力したテキストは既存のテキストの上に描画されるか、あるいは既存のテキストが右に移動して入力したテキストが挿入される
非クライアント以外のコンポーネントでは、テキストを変換して (Windows と Macintosh の場合はスペースキー、Solaris の場合は Ctrl + N キーで) 確定できます。3 種類のプラットフォームのそれぞれで入力して、確かめてみてください。変換の結果は「日本語」という漢字 3 文字になり、確定したあとは、強調のない状態でコンポーネントに表示されます。