Skip to content

Latest commit

 

History

History

jaehun

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

Event Driven Programming

  • 런타임 구성 요소가 이벤트를 열고, 이벤트에 응답하는 소프트웨어 애플리케이션을 구축하기 위한 아키텍쳐 설계 패턴.

전통적인 프로그래밍

event driven programming traditional programming

  1. 서버에 연결

  2. 서버에 요청을 보냄

  3. 서버는 요청을 받음

  4. 요청을 처리

  5. 응답을 보냄

  6. 브라우저는 응답을 받음

  7. 연결을 종료

    • 브라우저에서 다른 응답이 필요한 경우 새 요청을 열고 응답을 받아야 한다.

이벤트 기반 프로그래밍

event driven programming

  1. 서버에 요청을 보냄

  2. 서버는 요청을 받음

  3. 요청을 처리

  4. 응답을 보냄

  5. 브라우저는 응답을 받음

    • 지속적으로 연결을 유지하면 이벤트를 주고 받는 방식이다.

이벤트를 수집하고 스케줄러를 통해서 이벤트 핸들러에게 전달한다. event driven programming how event driven programming works

java는 델리게이션 이벤트 모델을 사용한다. * 이벤트 객체 : 이벤트가 발생하면 해당 이벤트를 식별할 수 있는 각종 정보들을 모두 묶어 이벤트 객체라 한다. * 이벤트 소스 : 이벤트가 발생하는 개체이다. 밣생한 이벤트에 대한 정보를 핸들러에게 제공한다. * 이벤트 리스너 : 이벤트에 대한 응답을 생성한다.

이벤트 객체

event ?

개체의 상태 변화. 이벤트 소스의 상태 변화를 설명한다.

ActionEvent

객체의 상태 변화, 즉, 클릭, 메뉴 선택, 입력 완료등 사용자의 행동과 관련된 이벤트

ItemEvent

객체에 포함되어 있는 여러개의 아이템중 하나 이상이 선택될 경우 발생하는 이벤트

KeyEvent

키보드 상의 키 입력

FocusEvent

컴포넌트가 선택되거나 해제된 경우

TextEvent

텍스트가 변경될 때

WindowEvent

Window를 상속 받는 모든 컴포넌트에 대해 위도우 활성화, 비활성화 등

AdjustmentEvent

스크롤바를 움직일 때

ComponentEvent

컴포넌트가 사라지거나 이동, 크기 변경

ContainerEvent

컨테이너에 컴포넌트의 추가/삭제

이벤트 소스

이벤트를 발생시키는 객체.
화면을 구성하거나 특정한 기능을 수행하는 객체, 외부적인 요인이나 특정 조건이 만족할 때 해당 이벤트를 생성한다.

Container

ContainerEvent

컨테이너에 컴포넌트의 추가/삭제

Component

ComponentEvent

컴포넌트가 사라지거나 이동, 크기 변경

FocusEvent

컴포넌트가 포커스를 받거나 잃을 때

KeyEvent

키를 누르거나 뗄 때

MouseEvent

마우스 버튼을 누르거나 뗄 때, 마우스 버튼을 클릭할 때, 컴포넌트 위에 마우스가 올라갈 때 등..

Window

WindowEvent

Window를 상속 받는 모든 컴포넌트에 대해 위도우 활성화, 비활성화 등

JButton

ActionEvent

마우스로 버튼 클릭

JList

ActionEvent

아아템을 더블클릭하여 리스트 아이템 선택

JMenuItem

ActionEvent

특정 메뉴의 선택

JTextField

ActionEvent

텍스트를 입력한 후 엔터키 입력

JCheckBox

ItemEvent

체크박스의 선택/해제

JCheckBoxMenuItem

ItemEvent

체크박스 메뉴아이템의 선택/해제

JList

ItemEvent

리스트 아이템 선택

JScrollBar

AdjustmentEvent

스크롤바를 움직일 때

이벤트 리스너

이벤트 소스에서 이벤트가 발생할 경우, 처리를 등록하기 위한 인터페이스.

ActionEvent

ActionListener

버튼 클릭이나 텍스트 필드 변경등의 작업에 응답한다.

ItemEvent

ItemListener

개별 항목 변경 사항을 수신한다.(예: checkbox)

KeyEvent

KeyListener

키보드 입력을 수신한다.

MouseEvent

MouseListener

마우스에서 발생하는 이벤트을 수신한다(예 : 클릭, 더블 클릭, 오른쪽 클릭 등)

MouseMotionListener

마우스 움직임을 수신한다.

FocusEvent

FocusListener

컴포넌트가 포커스를 받거나 잃을 때 수신한다.

WindowEvent

WindowListener

윈도우에서 발생하는 이벤트를 수신한다.

ContainerEvent

ContainerListener

컨테이너에서 발생하는 이벤트를 수신한다.(예 : JFrame, JPanel 등)

ComponentEvent

ComponentListener

구성 요소의 변경 사항을 수신한다. (예 : 레이블 이동, 크기 조정 등)

AdustmentEvent

AdjustmentListener

조정을 수신한다. (예 : 스크롤 바 작동)