프로그래밍[Univ]/Swing Basic

[Swing] 이벤트

Cloud Travel 2011. 8. 25. 20:27
* 이벤트
 - 프로그램 외적인 요소로서 프로그램진행에 영향을 주는 행위

* 이벤트의 발생
 - 이벤트는 키/마우스 등의 사용자의 행동 또는 외부장치로부터의 입력, 데이터/메세지 수신등으로 발생

* 이벤트 기반 프로그램
 - 이벤트 발생에 따라 프로그램 실행흐름이 결정되는 프로그램

* 이벤트 관련 용어 정리
 - 이벤트 소스 : 이벤트를 발생시킨 GUI컴포넌트
 - 이벤트 객체 : 이벤트에 대한 속성값을 가진 객체
 - 이벤트 리스너 : 이벤트를 처리하는 코드 / 컴포넌트에 등록되어야 한다.
 - 이벤트 분배 스레드 : 이벤트 발생에 의해 어떤 리스너를 실행할지 정해주는 스레드

* 이벤트 기반 프로그램 실행 경로


 ※ 자바의 이벤트는 이벤트 분배 스레드에 의해 도착하는 순서대로, 단 한개씩만 처리됨
  > 프로그램 지연 발생 가능
  > 이벤트 리스너를 최대한 짧게 지정하거나 따로 스레드를 만들어 관리하여 지연 방지

* 이벤트 객체
 - 이벤트에 대한 여러 정보를 가진 객체로 메소드를 통해 사용자에게 정보 제공
 - 담고 있는 정보
  > 이벤트 종류/소스/발생 좌표
  > 마우스 클릭 횟수/클릭된 종류
  > 버튼이나 메뉴 정보
  > 키의 코드/문자 값
  > ....
  등의 수많은 것을 담고 있다
 - 이벤트 처리를 위해서는 java.awt.event.*을 포함(import)해야 됨 
 - 스윙 이벤트를 다루는 경우는 javax.swing.event.*을 추가적으로 포함해야 됨
 - 이벤트 객체와 그에대한 이벤트 소스(이벤트 객체 발생원)



* 리스너 인터페이스
 - 자바 AWT나 Swing은 사용자가 이벤트 리스너를 작성할 수 있도록 인터페이스를 제공한다
 - 인터페이스에서 제공되는 추상메소드를 완성하여 사용해야된다.
  > 해당 리스너를 구현하기 위해 인터페이스를 통해 상속받는 모든 리스너를 구현해야 됨
  > 이벤트 발생시 서로 다른 메소드가 호출 되므로 이들의 관계를 숙지해야 된다.
 -  이벤트 리스너 인터페이스

 > 메소드가 호출되는 경우는 직관적인 단어로 메소드가 구성되있어서 작성 필요성을 못느낌

-----------------------------------------------------------------------------------------------------

사실 두개의 표는 인터넷에 있으면 좀 퍼다가 출처 밝히고 쓰려고햇는데-_-;; 아무리찾아도 없어서

일일이 타자로두들김..;; 혹시 오타있으면 시정할테니 알려주세용~ㅋ