상세 컨텐츠

본문 제목

AWT - 이벤트 처리(event handling)

자바강좌

by somiyuralove 2019. 5. 8. 00:11

본문

이벤트(event)란 사용자 또는 프로그램 코드에 의해서 발생할 수 있는 사건을 말합니다. 예를들어 사용자가 마우스를 움직이거나 클릭할때, 키보드를 눌렀을 때, 또는 Frame의 크기를 변경할 때 이벤트가 발생합니다.

이벤트에 대한 수행코드를 작성하여 이벤트 소스에 이벤트 리스너(Event Listener)로 등록하는 것을 이벤트 처리(Event handling)라고 합니다. 이벤트가 발생하더라도 그게 대한 이벤트 처리를 하지 않으면, 아무일도 일어나지 않습니다.

이벤트가 발생하면 해당 이벤트 클래스의 인스턴스가 생성됩니다. ( ActionEvent가 발생하면 ActionEvent인스턴스가 생성됩니다.) 그 다음에 이벤트를 처리할 Listener가 이벤트 소스에 등록되어 있는지 확인해서, 등록된 Listener중에서 발생한 이벤트를 처리할 Listener가 있으면, 이 Listener가 이벤트를 처리하고 됩니다. 반대로 발생할 이벤트를 처리할 Listener가 등록되어 있지 않으면, 아무 일도 일어나지 않습니다.

그러면 Frame의 닫기 버튼을 눌렀을때 이벤트 처리에 대한 예제를 한번 보시겠습니다. 아래의 예제를 보시죠.

실행시켜보면 오른쪽에 프레임이 실행되는데, 오른쪽 위의 닫기 버튼을 누르면 닫히는것을 확인할 수 있는데, 이는 우리가 닫았을때 이벤트를 구현했기때문에 가능한 것 입니다.

이벤트 핸들러를 작성할 때, 이벤트 처리에 필요한 메서드의 개수와는 관계없이 해당 이벤트 리스너(인터페이스)에 정의된 모든 추상메서드를 구현해야 한다는 것은 좀 불편합니다.

이러한 불편한 점을 없애기 위해서 고안된 것이 Adapter클래스이며, 이벤트 리스너를 직접 구현하는 대신에 Adapter클래스를 상속받아서 원하는 메서드만 작성(오버라이딩)하면 됩니다.

아래 Adapter클래스의 구현 예제를 아래에서 음미해 보시죠.

이 포스트가 도움이 되셨다면 공감버튼을 눌러주시기를 부탁드립니다.^^*

관련글 더보기

댓글 영역