InputMethodRequests 인터페이스

InputMethodRequests 인터페이스

InputMethodRequests는 입력 방식과 함께 동작하기 위해 텍스트 편집 컴포넌트가 처리해야 하는 요청을 정의해요. 컴포넌트는 이 인터페이스를 직접 구현하거나, 별도의 객체로 구현할 수 있어요. 이 인터페이스를 구현하는 객체는 컴포넌트의 getInputMethodRequests 메서드의 반환값이 되어야 해요.

출처: Java API Reference

본문

텍스트 편집 컴포넌트는 입력 방식 이벤트 리스너도 제공해야 해요. 이 인터페이스는 두 가지 입력 사용자 인터페이스 중 하나를 지원하도록 설계됐어요.

  • on-the-spot 입력 — 조합된 텍스트가 텍스트 컴포넌트의 본문 일부로 표시돼요.
  • below-the-spot 입력 — 조합된 텍스트가 커밋될 때 텍스트가 삽입될 삽입 지점 바로 아래의 별도 조합 창에 표시돼요.
public interface InputMethodRequests

참고로 컴포넌트 본문 안에서 텍스트가 선택돼 있으면, 커밋 시 선택된 텍스트가 커밋된 텍스트로 대체돼요. 따라서 선택된 텍스트는 텍스트가 입력되는 문맥의 일부로 간주되지 않아요.

주요 메서드

  • getTextLocation(TextHitInfo offset) — 조합 텍스트의 현재 선택·커서 위치의 텍스트 위치를 반환해요.
  • getLocationOffset(int x, int y) — 주어진 화면 좌표에서 조합 텍스트·선택의 위치를 계산해요.
  • getCommitOffset() — 커밋 텍스트의 시작 오프셋을 반환해요.
  • getSelectedText(AttributedCharacterIterator.Attribute[] attributes) — 조합 텍스트를 속성과 함께 반환해요.
  • getBeginIndex() / getEndIndex() — 조합 텍스트의 시작·끝 인덱스를 반환해요.
  • insertText(AttributedCharacterIterator text, int insertOffset) — 조합 텍스트를 삽입해요.

이 인터페이스를 구현하면 텍스트 편집 컴포넌트가 한글·일본어·중국어 입력 방식과 원활히 협력할 수 있어요.

더 알아보기