Posted by 김덕태 on December 21, 1997 at 08:55:48:
In Reply to: RE: 키 값 아는 방법 posted by 윤경구 on November 24, 1997 at 20:36:55:
KeyEvent가 발생하면 셋중 하나가 발생하는 데,
그 명확한 차이점이 확실히 문서화되어 있지 않아서
다소 혼란스럽긴 하지요.
JDK1.1.5가 나타내는 결과 및 스윙 및 JDK 1.2의 입력 메쏘드 API를
보고 그 의미론을 다음과 같이 간접적으로 파악할 수 있었습니다.
우선, keyPressed 와 keyReleased는 저수준 입력 이벤트입니다.
즉, 특정 문자가 입력되었다기 보다는 단순히 어떤 키가 눌리고
떨어졌음을 의미하는 것입니다.
keyTyped는 특정 문자가 입력되었음을 의미하는
다소 고수준의 이벤트 (즉, keyPressed와 keyReleased 이벤트로부터
만들어지는 이벤트)라고 보입니다.
보통의 영문 모드로 입력을 하게되면, keyPressed, keyTyped, keyReleased의
순서로 이벤트가 발생합니다만, 한글 모드로 전환하게 되면,
저수준 키 입력을 위한 것이 아니라 문자 입력모드이므로, keyPressed는
발생하지 않고 하나의 한글 문자가 확실하게 완성될 때마다 하나의 keyTyped 이벤트가 발생합니다.
그런데, keyReleased는 왜 발생하는 지 잘 모르겠더군요.
아무리 생각해봐도 논리적인 근거를 발견할 수가 없었습니다.