InputMethodRequests 인터페이스
InputMethodRequests 인터페이스
InputMethodRequests는 입력 방식과 함께 동작하기 위해 텍스트 편집 컴포넌트가 처리해야 하는 요청을 정의해요. 컴포넌트는 이 인터페이스를 직접 구현하거나, 별도의 객체로 구현할 수 있어요. 이 인터페이스를 구현하는 객체는 컴포넌트의 getInputMethodRequests 메서드의 반환값이 되어야 해요.
본문
텍스트 편집 컴포넌트는 입력 방식 이벤트 리스너도 제공해야 해요. 이 인터페이스는 두 가지 입력 사용자 인터페이스 중 하나를 지원하도록 설계됐어요.
- 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)— 조합 텍스트를 삽입해요.
이 인터페이스를 구현하면 텍스트 편집 컴포넌트가 한글·일본어·중국어 입력 방식과 원활히 협력할 수 있어요.