モジュール java.desktop
パッケージ java.awt.im

インタフェースInputMethodRequests

既知のすべてのサブインタフェース:
InputMethodContext

public interface InputMethodRequests
InputMethodRequestsは、インプット・メソッドを扱うためにテキスト編集コンポーネントで処理する必要がある要求を定義します。 コンポーネントはこのインタフェース自体を実装することも、またはそのインタフェースを実装する独立したオブジェクトを使用することもできます。 このインタフェースを実装するオブジェクトは、コンポーネントのgetInputMethodRequestsメソッドから返される必要があります。

また、テキスト編集コンポーネントはインプット・メソッドのイベント・リスナーを提供する必要があります。

インタフェースは、次の2つの入力ユーザー・インタフェースのいずれかをサポートするように設計されます。

  • オンザスポット(on-the-spot)入力。変換されるテキストはテキスト・コンポーネントのテキスト本体の一部として表示される。
  • ビロウザスポット(below-the-spot)入力。変換されるテキストは、確定時にテキストが挿入される挿入ポイントのすぐ下の、独立した変換ウィンドウに表示される。 コンポーネントのテキスト本体内でテキストが選択されている場合、このテキストは確定時に、確定されたテキストに置き換えられる。したがって、テキストの入力先となるコンテキストの一部とは見なされない。

導入されたバージョン:
1.2
関連項目:
Component.getInputMethodRequests(), InputMethodListener
  • メソッドの詳細

    • getTextLocation

      Rectangle getTextLocation​(TextHitInfo offset)
      現在の変換テキスト内の指定されたオフセットの場所、または確定テキスト内の選択部分の場所を取得します。 この情報は、たとえば、変換テキストの近くに候補ウィンドウを配置したり、確定テキストの挿入先の位置の近くに変換ウィンドウを配置するために使用されます。

      コンポーネントに変換テキストが含まれる(コンポーネントに送られる最新のInputMethodEventに変換テキストが含まれるため)場合、オフセットは変換テキストからの相対位置になります。 オフセット0は、変換テキストの最初の文字を示し、返される位置はこの文字の位置になります。

      コンポーネントが変換テキストを持たない場合、オフセットは無視され、返される位置は、選択テキストが格納されている最終行内のハイライトの先頭(行方向)になります。 たとえば、左から右への横書きのテキスト(英語など)では、選択テキストが格納されている最終行の左端にある文字の左隣の位置が返されます。 上から下への縦書きのテキストで、右の行から左の行へ書く場合は、選択したテキストが格納されている一番左の行の先頭の位置が返されます。

      位置は厚さ0のキャレットとして表されます。つまり、テキストが横方向に描画される場合は幅0、テキストが縦方向に描画される場合は高さ0になります。 ほかのテキスト方向の場合は、縦方向または横方向にマッピングする必要があります。 矩形は絶対画面座標を使用します。

      パラメータ:
      offset - 変換テキストがある場合は変換テキスト内での座標、そうでない場合はnull
      戻り値:
      座標の画面位置を表す矩形
    • getLocationOffset

      TextHitInfo getLocationOffset​(int x, int y)
      指定された画面上の絶対座標xとyとに対応する変換テキスト内のオフセットを取得します。 この情報は、たとえば、マウス・クリックおよびマウス・カーソルを処理するために使用されます。 オフセットは変換テキストに対する相対位置で、オフセット0は変換テキストの先頭を示します。

      位置が変換テキストの占める領域の外にある場合はnullを返します。

      パラメータ:
      x - 画面上での絶対x座標
      y - 画面上での絶対y座標
      戻り値:
      変換テキスト内での座標を記述するテキスト・ヒット情報
    • getInsertPositionOffset

      int getInsertPositionOffset()
      テキスト編集コンポーネントに含まれる確定テキストの挿入位置のオフセットを取得します。 これは、インプット・メソッドを通じて入力された文字の挿入位置のオフセットです。 この情報は、たとえば挿入位置の前後のテキストを調べるためにインプット・メソッドによって使用されます。
      戻り値:
      挿入位置の座標
    • getCommittedText

      AttributedCharacterIterator getCommittedText​(int beginIndex, int endIndex, AttributedCharacterIterator.Attribute[] attributes)
      未確定テキスト以外の、テキスト編集コンポーネントに含まれるテキストおよび属性の全体に、アクセスするイテレータを取得します。 未確定の(変換)テキストは、インデックスの計算では無視され、イテレータを通じてアクセス可能にはなりません。

      インプット・メソッドは、関連する属性のリストを提供する場合があります。 その場合、実装側が持つその他の属性についての情報は、イテレータを通じてアクセス可能にする必要はありません。 リストがnullの場合、利用可能なすべての属性の情報にアクセスできる必要があります。

      パラメータ:
      beginIndex - 最初の文字のインデックス
      endIndex - 最後の文字のあとに続く文字のインデックス
      attributes - インプット・メソッドに関連する属性のリスト
      戻り値:
      テキストおよびテキストの属性にアクセスできるイテレータ
    • getCommittedTextLength

      int getCommittedTextLength()
      未確定の(変換)テキストを除く、テキスト編集コンポーネントに格納されているテキスト全体の長さを返します。
      戻り値:
      未確定のテキストを除くテキストの長さ
    • cancelLatestCommittedText

      AttributedCharacterIterator cancelLatestCommittedText​(AttributedCharacterIterator.Attribute[] attributes)
      テキスト編集コンポーネントから最新の確定テキストを取得して、コンポーネントのテキスト本体からそのテキストを削除します。 これは、確定テキストを以前の変換状態に戻す、一部のインプット・メソッドの「確定取消し」機能で使用されます。 変換テキストは、InputMethodEventを使用してコンポーネントに送られます。

      一般に、この機能はユーザーがテキストでほかのオペレーションを実行したあとではなく、テキストが確定された直後にだけサポートされます。 この機能がサポートされていない場合はnullを返します。

      インプット・メソッドは、関連する属性のリストを提供する場合があります。 その場合、実装側が持つその他の属性についての情報は、イテレータを通じてアクセス可能にする必要はありません。 リストがnullの場合、利用可能なすべての属性の情報にアクセスできる必要があります。

      パラメータ:
      attributes - インプット・メソッドに関連する属性のリスト
      戻り値:
      最新の確定テキスト、またはnull (「確定取消し」機能がサポートされていない場合)
    • getSelectedText

      現在選択されているテキストをテキスト編集コンポーネントから取得します。 これは、さまざまな目的で使用されます。 1つの例として一部のインプット・メソッドの「再変換」機能があります。 この場合、インプット・メソッドはインプット・メソッド・イベントを送って、選択されているテキストを変換テキストに置き換えます。 インプット・メソッドの機能に応じて、これは選択テキストに対応する元の変換テキスト、テキスト内に最後に入力された変換テキスト、または選択テキストを元に戻したテキストになることもあります。

      インプット・メソッドは、関連する属性のリストを提供する場合があります。 その場合、実装側が持つその他の属性についての情報は、イテレータを通じてアクセス可能にする必要はありません。 リストがnullの場合、利用可能なすべての属性の情報にアクセスできる必要があります。

      パラメータ:
      attributes - インプット・メソッドに関連する属性のリスト
      戻り値:
      現在選択されているテキスト