FocusEvent
FocusEvent (포커스 이벤트)
컴포넌트가 입력 포커스를 얻거나 잃었음을 나타내는 저수준 이벤트입니다.
본문
public class FocusEvent extends ComponentEvent
이 저수준 이벤트는 TextField 같은 컴포넌트에 의해 생성됩니다. 이벤트는 컴포넌트의 addFocusListener 메서드로 그러한 이벤트를 받도록 등록한 모든 FocusListener 또는 FocusAdapter 객체에 전달됩니다. (FocusAdapter 객체는 FocusListener 인터페이스를 구현합니다.) 이벤트가 발생할 때 각 리스너 객체는 이 FocusEvent를 받습니다.
포커스 이벤트에는 영구(permanent)와 임시(temporary) 두 수준이 있습니다. 영구 포커스 변경 이벤트는 requestFocus() 호출이나 사용자가 TAB 키로 컴포넌트를 탐색하는 것처럼 포커스가 한 컴포넌트에서 다른 컴포넌트로 직접 이동할 때 발생합니다.
임시 포커스 변경 이벤트는 Window 비활성화나 Scrollbar 드래그처럼 다른 작업의 간접적인 결과로 포커스를 일시적으로 잃을 때 발생합니다. 이 경우 원래 포커스 상태는 해당 작업이 끝나면 자동으로 복원됩니다.
영구·임시 포커스 이벤트 모두 FOCUS_GAINED와 FOCUS_LOST 이벤트 id로 전달되며, 수준은 isTemporary() 메서드로 구분할 수 있습니다.
모든 FocusEvent는 자신이 생성된 이유(원인)를 기록합니다. 원인은 포커스 이벤트 생성 시 지정되며 getCause()로 얻을 수 있습니다. 어떤 FocusEvent 인스턴스의 id 매개변수가 FOCUS_FIRST에서 FOCUS_LAST 사이가 아니면 동작이 정의되지 않습니다.