자바 스윙 복습 세번째 !
마우스 이벤트와 마우스 관련 리스너 키 리스너
마우스 리스너와 마우스 모션 리스너를 따로 등록해야한다.
int getButton() // 마우스 눌려진 버튼 가져오기
int getClickCount() // 마우스 클릭 횟수 가져오기
Point getPoint() // 마우스 포인터의 위치를 Point 객체로 리턴
int getX() // 마우스 X좌표
int getY() // 마우스 Y좌표
Mouse 리스너와 MouseMotion 리스너를 모두 가진 리스너를 구현하면 될듯??
MouseListener를 구현하면 5개의 함수 사용 가능, MouseMotionListener를 구현하면 3개의 함수 구현가능
키 이벤트와 포커스
키 이벤트를 받을 수 있는 조건에 주목! - 포커스를 줘야지 키 이벤트를 받을 수 있다!!! (패널)
setFocusable(true), requestFocus() 를 꼭 입력하는 걸로 하자!
마우스로 컴포넌트 클릭할 때 포커스 지정 부분...
클릭 시에 setFocusable(true), requestFocus() 두 줄을 입력해서 포커스 가게끔 지정하면 됨
컴포넌트에 키 이벤트 리스너 등록할 때는
component.addKeyListener(myKeyListener); 이런 식으로 해도 되고
그냥 마우스 처럼 패널에 직접 마우스 리스너 구현해도 됨. 직접 구현이 더 객관적일듯.
implements MouseListener, KeyLisener 이렇게.
getKeyCode()를 통해서 가상 키 값 알아낼 수 있음!
키가 입력되면 입력된 키 정보를 가진 이벤트 객체 생성 : keyEvent객체
모든 키에 대한 눌러진 키에 대한 정수형 키 코드값 리턴함
입력된 키를 판별하기 위해 가상키(virtual key)값과 비교하여야 함.
가상 키 값은 KeyEvent 2123상수로 정의됨
static 메소드로 키 코드 값에 해당하는 키 이름 문자열 리턴
F1 키의 경우 F1 Shift키의 경우SHFIT 등의 문자열 리턴.
마우스나 키보드는 패널 자체가 리스너를 구현하는게 직관적이고 보통 그렇게 해