코드 일반화, Cursor 변경

yeezze·2022년 6월 10일
0

1. 코드 일반화

프로그램을 설계할 때에는 객체지향적 구조적 이해가 가장 중요하다. 재사용이 가능한 코드를 만들어서 업무의 효율화를 실행할 수 있어야 한다. 때문에 Toolbar와 DrawingPanel 클래스의 코드를 전부 일반화 시켰다. 그리고 가변되는 코드는 전부 Constants 클래스 안에 eTools에 몰아넣었다. 이렇게 설계함으로써 도형을 추가할 때에도 독립된 eTools 클래스만 수정해주면 된다.

1-1. 컴포넌트, JDK 최상위 클래스

컨테이너(자식을 가지고 있는 컴포넌트)에 자식을 등록하면 add() 컨테이너가 가지고 있는 벡터 안에 차례대로 들어간다. 때문에 인덱스 순서대로 자식 컴포넌트를 조회할 수 있다.

  • 활용 메소드 : getComponent(int index)

2. Cursor 변경

마우스를 움직일 때 커서가 변경되는 기능을 추가했다. 기능 추가를 구현할 때 제약조건을 먼저 생각해야 한다. 제약조건이라는 것은 항상 상태를 떠올리면 된다.

UI 설계 구성 단계

user 이벤트 발생 → (제약조건) 상태 고려 → 이벤트가 1개인지 멀티 이벤트인지 고려

커서를 변경하는 기능은 마우스 move 이벤트가 발생하면 실행되어야 한다. 드로잉패널 내의 상태가 Idle일 때 실행되고, 커서 밑에 도형의 존재 여부에 따라 커서 모양이 변한다.

mouseMoved() : state == Idle → changeCursor()

커서 변경 함수 : changeCursor() : 기본 커서 모양, if(onShape()) → 십자가 커서 모양

도형 존재 여부 판단 함수 : onShape()

profile
백엔드 개발자 😊

0개의 댓글