JavaTM Platform
Standard Ed. 6

java.awt.im.spi
인터페이스 InputMethod



public interface InputMethod

복합 텍스트 입력을 지원하는 입력 메소드를 위한 인터페이스를 정의합니다. 종래부터, 입력 메소드는, 중국어, 일본어, 한국어 등, 표준 사이즈의 키보드에서는 표현할 수 없는 문자가 다수 존재하는 언어에서의 텍스트 입력을 지원하고 있습니다. 이러한 입력 메소드는, 영어의 음성 텍스트 입력, 또는 타이어의 문자재순서부의 지원에도 사용됩니다.  

InputMethod 의 서브 클래스는, 입력 메소드 시스템로 로드하고 나서, API (InputContext.selectInputMethod ) 또는 사용자 인터페이스 (입력 방식의 변환 메뉴)를 통해서 선택할 수 있습니다.

도입된 버젼:
1.3

메소드의 개요
 void activate ()
          즉시 입력 처리를 위한 입력 메소드를 기동합니다.
 void deactivate (boolean isTemporary)
          입력 메소드를 종료합니다.
 void dispatchEvent (AWTEvent  event)
          입력 메소드에 이벤트를 발송 합니다.
 void dispose ()
          이 입력 메소드로 사용된 자원을 해제합니다.
 void endComposition ()
          이 문맥으로 현재 진행중의 입력 변환을 종료합니다.
 Object getControlObject ()
          이 입력 메소드의 제어 객체 또는 null 를 돌려줍니다.
 Locale getLocale ()
          현재의 입력 로케일을 돌려줍니다.
 void hideWindows ()
          이 입력 메소드의 인스턴스 또는 클래스가 열린 모든 윈도우를 닫는지, 숨깁니다.
 boolean isCompositionEnabled ()
          이 입력 메소드가 사용 가능한가 어떤가 판별합니다.
 void notifyClientWindowChange (Rectangle  bounds)
          클라이언트의 윈도우 위치 또는 상태의 변경을, 이 입력 메소드에 통지합니다.
 void reconvert ()
          재변환 조작을 개시합니다.
 void removeNotify ()
          클라이언트 컴퍼넌트가 포함 관계의 계층으로부터 삭제되고 있는지, 또는 입력 메소드가 그 컴퍼넌트로 사용할 수 없게 되고 있는 것을, 입력 메소드에 통지합니다.
 void setCharacterSubsets (Character.Subset [] subsets)
          이 입력 메소드로 입력 가능한 Unicode 캐릭터 세트의 부분집합을 설정합니다.
 void setCompositionEnabled (boolean enable)
          파라미터 enable 의 값에 응해, 변환의 입력 메소드를 사용 가능 또는 사용 불가능하게 합니다.
 void setInputMethodContext (InputMethodContext  context)
          입력 메소드 이벤트의 클라이언트 컴퍼넌트에의 발송, 및 클라이언트 컴퍼넌트로부터의 정보의 요구에 사용하는, 입력 메소드의 문맥을 설정합니다.
 boolean setLocale (Locale  locale)
          입력 로케일의 설정을 시도합니다.
 

메소드의 상세

setInputMethodContext

void setInputMethodContext(InputMethodContext  context)
입력 메소드 이벤트의 클라이언트 컴퍼넌트에의 발송, 및 클라이언트 컴퍼넌트로부터의 정보의 요구에 사용하는, 입력 메소드의 문맥을 설정합니다.  

이 메소드는, 입력 메소드의 인스턴스를 생성하자마자 불려 갑니다.

파라미터:
context - 이 입력 메소드용의 입력 메소드 문맥
예외:
NullPointerException - context 가 null 의 경우

setLocale

boolean setLocale(Locale  locale)
입력 로케일의 설정을 시도합니다. 입력 메소드가 목적의 로케일을 지원하고 있는 경우, 이 메소드는 그 동작을 변경해 로케일에 대한 입력을 지원해, true 를 돌려줍니다. 그렇지 않은 경우는, false 를 돌려주어 동작의 변경을 실시하지 않습니다.  

이 메소드는, 다음의 경우에 불려 갑니다.

파라미터:
locale - 입력하는 로케일
반환값:
지정된 로케일이 지원되고 있는지 어떤지
예외:
NullPointerException - locale 가 null 의 경우

getLocale

Locale  getLocale()
현재의 입력 로케일을 돌려줍니다. 예외 클래스의 경우는, null 를 돌려주는 일이 있습니다.  

이 메소드는, 다음의 경우에 불려 갑니다.

반환값:
현재의 입력 로케일, 또는 null

setCharacterSubsets

void setCharacterSubsets(Character.Subset [] subsets)
이 입력 메소드로 입력 가능한 Unicode 캐릭터 세트의 부분집합을 설정합니다. 모든 문자를 사용할 수 있는 것을 나타내는 경우는, null 가 건네받습니다.  

이 메소드는, 다음의 경우에 불려 갑니다.

파라미터:
subsets - 문자 입력에 사용할 수 있는 Unicode 캐릭터 세트의 부분집합

setCompositionEnabled

void setCompositionEnabled(boolean enable)
파라미터 enable 의 값에 응해, 변환의 입력 메소드를 사용 가능 또는 사용 불가능하게 합니다.  

변환에 사용할 수 있는 입력 메소드는, 변환과 제어의 2 개의 목적으로, 들어 오는 이벤트를 해석합니다. 그 때, 사용 불가능한 입력 메소드는 변환을 위한 이벤트를 해석하지 않습니다. 다만, 입력 메소드가 사용 가능한가 어떤가에 관계없이, 이벤트는 입력 메소드에게 건네집니다. 또, 변환에 사용 불가능한 입력 메소드여도, 변환을 위해서(때문에) 자신을 사용 가능 또는 사용 불가능하게 하는 등의 제어 목적으로, 이벤트를 해석할 수가 있습니다.  

호스트 operating system에 의해 제공되는 입력 메소드의 경우, 이 조작이 지원되고 있는지 어떤지를 항상 판단할 수 있다고는 할 수 없습니다. 예를 들어, 입력 메소드가 특정의 로케일로 밖에 변환하지 못하고, 다른 로케일에 대해서는 아무것도 실시하지 않는 경우가 있습니다. 그러한 입력 메소드의 경우, 이 메소드가 UnsupportedOperationException 를 throw 하지 않을 가능성이 있습니다만, 변환이 가능한지 어떤지에 영향을 주는 일도 없습니다.  

이 메소드는, 다음의 경우에 불려 갑니다.

파라미터:
enable - 변환용의 입력 메소드를 사용 가능하게 할지 어떨지
예외:
UnsupportedOperationException - 이 입력 메소드가, 사용 가능/사용 불가능의 조작을 지원하고 있지 않는 경우
관련 항목:
isCompositionEnabled()

isCompositionEnabled

boolean isCompositionEnabled()
이 입력 메소드가 사용 가능한가 어떤가 판별합니다. 변환에 사용할 수 있는 입력 메소드는, 변환과 제어의 2 개의 목적으로, 들어 오는 이벤트를 해석합니다. 그 때, 사용 불가능한 입력 메소드는 변환을 위한 이벤트를 해석하지 않습니다.  

이 메소드는, 다음의 경우에 불려 갑니다.

반환값:
이 입력 메소드가 변환을 위해서(때문에) 사용 가능한 경우는 true, 그렇지 않은 경우는 false
예외:
UnsupportedOperationException - 이 입력 메소드가, 변환을 위해서(때문에) 사용 가능한가 어떤가의 확인을 지원하고 있지 않는 경우
관련 항목:
setCompositionEnabled(boolean)

reconvert

void reconvert()
재변환 조작을 개시합니다. 입력 메소드는,InputMethodRequests.getSelectedText 메소드를 사용해, 현재의 클라이언트 컴퍼넌트로부터 재변환하는 텍스트를 가져옵니다. 이 메소드는, 다른 InputMethodRequests 메소드를 사용해 재변환 조작에 필요한 추가 정보를 요구할 수 있습니다. 이 조작에 의해 변환해, 확정한 텍스트는, 클라이언트 컴퍼넌트에 InputMethodEvent 의 순서로서 보내집니다. 지정된 텍스트가 재변환할 수 없는 경우는, 동일한 텍스트를 확정 텍스트로서 클라이언트 컴퍼넌트에 보낼 필요가 있습니다.  

이 메소드는 InputContext.reconvert 에 의해 불려 갑니다.

예외:
UnsupportedOperationException - 이 입력 메소드가, 재변환 조작을 지원하고 있지 않는 경우

dispatchEvent

void dispatchEvent(AWTEvent  event)
입력 메소드에 이벤트를 발송 합니다. 입력 메소드의 지원가, 포커스 된 컴퍼넌트로 사용 가능한 경우는, 특정의 형태의 입력 이벤트가, 컴퍼넌트 이벤트 처리 메소드 또는 이벤트 청취자에게 발송 되기 전에, 이 컴퍼넌트의 현재의 입력 메소드에 발송 됩니다. 입력 메소드는, 그 메소드가 이벤트를 처리할 필요가 있을지 어떨지를 결정합니다. 처리할 필요가 있는 경우는, 이벤트의 consume 메소드도 호출합니다. 이것에 의해, 이벤트는 그 컴퍼넌트의 이벤트 처리 메소드 또는 이벤트 청취자에게 발송 되지 않게 됩니다.  

이벤트는, InputEvent 또는 그 서브 클래스의 인스턴스의 경우에 발송 됩니다. 이것에는, AWT 클래스의 KeyEvent 및 MouseEvent 의 인스턴스가 포함됩니다.  

이 메소드는 InputContext.dispatchEvent 에 의해 불려 갑니다.

파라미터:
event - 입력 메소드에 발송 되는 이벤트
예외:
NullPointerException - event 가 null 의 경우

notifyClientWindowChange

void notifyClientWindowChange(Rectangle  bounds)
클라이언트의 윈도우 위치 또는 상태의 변경을, 이 입력 메소드에 통지합니다. 이 메소드는, 이 입력 메소드가 입력 문맥으로 현재 사용되고 있는 입력 메소드이며, 이 메소드에 대한 통지가 사용 가능한 경우에 불려 갑니다 (InputMethodContext.enableClientWindowNotification 를 참조). 입력 문맥의 removeNotify 메소드가 불려 가면(자), 이 메소드의 호출은 일시적으로 보류되어 신규의 클라이언트 컴퍼넌트가 입력 메소드를 기동하면(자) 재개됩니다. 이 메소드는 다음의 경우에 불려 갑니다.

파라미터:
bounds - 화면상의 클라이언트 윈도우의 bounds . 클라이언트 윈도우가 아이콘화 되는지, 불가시의 경우는 null

activate

void activate()
즉시 입력 처리를 위한 입력 메소드를 기동합니다.  

입력 메소드가 독자적인 윈도우를 소유하는 경우, 이 시점에서, 모든 필요한 윈도우가 열려 있어 가시인 것을 확인할 필요가 있습니다.  

이 메소드는, 다음의 경우에 불려 갑니다.

이 메소드는, 입력 메소드가 정지하고 있는 경우에만 불려 갑니다. 새롭게 인스턴스가 생성된 입력 메소드는 정지하고 있는 것이라고 보여집니다.


deactivate

void deactivate(boolean isTemporary)
입력 메소드를 종료합니다. isTemporary 인수는 FocusEvent.isTemporary 의 인수와 같은 의미를 가집니다.  

입력 메소드가 독자적인 윈도우를 소유하는 경우, 룩 업 선택 윈도우 등 현재의 변환에 관련하는 윈도우만이, 여기서 닫혀집니다. 이 입력 메소드를, 다른 클라이언트 컴퍼넌트를 위해서(때문에) 곧바로 재기동하는 일도 가능합니다만, 컨트롤 패널등의 보다 지속적인 윈도우를 닫거나 다시 열거나 하면(자), 불필요한 화면 플릭커가 생성됩니다. 다른 입력 메소드 클래스의 인스턴스를 기동하는 경우는, 그 전에 hideWindows() 를 현재의 입력 메소드로 호출합니다.  

이 메소드는, 다음의 경우에 불려 갑니다.

이 메소드는, 입력 메소드가 액티브한 경우에만 불려 갑니다.

파라미터:
isTemporary - 포커스 변경이 일시적인가 어떤가

hideWindows

void hideWindows()
이 입력 메소드의 인스턴스 또는 클래스가 열린 모든 윈도우를 닫는지, 숨깁니다.  

이 메소드는, 다음의 경우에 불려 갑니다.

이 메소드는, 입력 메소드가 정지하고 있는 경우에만 불려 갑니다.


removeNotify

void removeNotify()
클라이언트 컴퍼넌트가 포함 관계의 계층으로부터 삭제되고 있는지, 또는 입력 메소드가 그 컴퍼넌트로 사용할 수 없게 되고 있는 것을, 입력 메소드에 통지합니다.  

이 메소드는 InputContext.removeNotify 에 의해 불려 갑니다.  

이 메소드는, 입력 메소드가 정지하고 있는 경우에만 불려 갑니다.


endComposition

void endComposition()
이 문맥으로 현재 진행중의 입력 변환을 종료합니다. 플랫폼 및 사용자 설정에 응해, 미확정의 텍스트를 확정 또는 삭제합니다. 텍스트에 대한 변경은 입력 메소드 이벤트를 사용해 액티브한 컴퍼넌트에 통지됩니다.

텍스트 편집 컴퍼넌트는, 예를 들어, 사용자가 텍스트내에서 (변환 텍스트의 외부에) 삽입 포인트를 이동했을 때나, 컴퍼넌트의 텍스트가 파일에 보존되거나 클립보드에 카피되었을 때 등, 다양한 상황으로 이 메소드를 호출하는 일이 있습니다.  

이 메소드는, 다음의 경우에 불려 갑니다.


dispose

void dispose()
이 입력 메소드로 사용된 자원을 해제합니다. 특히, 입력 메소드는 윈도우를 파기해, 필요가 없어진 파일을 닫을 필요가 있습니다.  

이 메소드는 InputContext.dispose 에 의해 불려 갑니다.  

이 메소드는, 입력 메소드가 정지하고 있는 경우에만 불려 갑니다. 파기한 뒤에, 이 인스턴스로 불려 가는 이 인터페이스의 메소드는 없습니다.


getControlObject

Object  getControlObject()
이 입력 메소드의 제어 객체 또는 null 를 돌려줍니다. 제어 객체는, 입력 메소드의 동작을 제어하거나 입력 메소드로부터 정보를 취득하는 메소드를 제공합니다. 객체의 형태는 입력 메소드 고유의 클래스입니다. 클라이언트는 기존의 입력 메소드 제어 객체 클래스와 결과를 비교해, 제공되는 메소드를 호출하기 위해서(때문에) 적절한 클래스에 캐스트 할 필요가 있습니다.  

이 메소드는 InputContext.getInputMethodControlObject 에 의해 불려 갑니다.

반환값:
현재의 입력 메소드의 제어 객체, 또는 null

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.