4주차-1

yeezze·2022년 3월 21일
0

목차

  1. Event-Driven Programming
  2. Mouse Event
    a. Basic Event
    b. Applied Event
  3. Mouse Handler

1. Event-Driven Programming

프로그램의 제어 주도권이 프로그램에 있지 않고 사용자가 발생하는 이벤트에 의해 제어되는 것을 말한다. 강의에서 만들어가고 있는 GUI 프로그램은 컴퓨터가 할 수 있는 일들을 시각적으로 그려놓은 것이다. 그것에 대해 어떤 유저 이벤트가 발생하느냐에 따라 실행되는 액션이 달라진다. 즉, 다시 말하면 이벤트의 결과는 환경에 따라서 달라진다.

프로그램의 구조는 Event와 Action의 반복이다. 해당 Event를 분석해서 알맞은 Action을 수행할 수 있도록 프로그래밍을 하는 것이다. Event는 마우스, 키보드 등의 input device와 직결되어 있다. 다양한 Event들 중에서 이번 강의에서는 Mouse Event에 대해서 다뤘다.

2. Mouse Event

a. Basic Event

  • move
  • Button (Press, Release)

b. Applied Event

  • click : 같은 좌표에서 press와 release가 순서대로 발생하는 것. 공간적 제약조건 존재.
  • double click : 클릭이 발생되고 지정해놓은 시간 내에 두번째 클릭이 발생하는 것. 공간, 시간적 제약조건 존재.
  • drag : 마우스가 press 된 상태에서 move가 일어나는 것

3. Mouse Handler

모든 클래스들(컴포넌트)이 Mouse Handler를 포함시키고 있어야한다.

MouseInputLister 인터페이스를 구현하여 별도의 MouseHandler class를 내부 클래스로 생성해준다.

private class MouseHandler implements MouseInputListener

mouseMove(), mousePressed(), mouseReleased(), mouseClicked(), mouseDrag() 등의 메소드를 오버라이딩한다.

MouseInputLister는 MouseListener와 MouseMotionListener를 상속받고 있다.

interface MouseInputListener extends MouseListener, MouseMotionListener

마우스 이벤트를 받는 컨포넌트(그림을 그릴 패널) 안에 MouseHandler class를 별도로 생성해주고 addMouseListener, addMouseMotionListener를 이용하여 등록해준다.

profile
백엔드 개발자 😊

0개의 댓글