JAVA :: 이벤트 리스너(2)

s_omi·2021년 2월 10일
1

JAVA (자바)

목록 보기
23/62
post-thumbnail

📝 Key

💡 이벤트와 포커스

💬 Key 이벤트는 사용자가 키를 입력할 때 발생하는 이벤트이다.

응용프로그램 내에 포커스(키 입력의 독점권)를 가진 컴포넌트가 키 입력을 독점하기 때문에, 현재 포커스를 가진 컴포넌트에만 Key 이벤트가 발생한다.

component.requestFocus(); // component에게 포커스를 주어 키 입력을 받을 수 있게 함.

💡 KeyListener

모든 키 입력에 대해서는 keyPressed()와 keyReleased()가 호출되고 특별히 유니코드인 A~Z, a~z, 0~9, !, @ 등에 대해서는 keyTyped()이 추가적으로 호출된다.

⚠ 문자가 아닌 <F1>, <Delete>, <Alt> 등의 키가 입력될 때 keyTyped()는 호출되지 않는다.

💡 키 이벤트 리스너 달기

component.addKeyListener(myKeyListener);

💡 가상 키와 입력된 키 판별

💬 char KeyEvent.getKeyChar()

입력된 키의 유니코드 값을 리턴한다. (유니코드 키가 아닌 경우, KeyEvent.CHAR_UNDEFINED를 리턴)

public void keyPressed(KeyEvent e) {
    if (e.getKeyChar() == 'q')
        System.exit(0); // q 키가 눌러지면 종료.
}

💬 int KeyEvent.getKeyCode()

모든 키에 대해 정수형의 키 코드 값을 리턴한다.
getKeyCode()가 리턴한 키 코드가상 키 값을 비교한다.
가상 키KeyEvent 클래스VK_로 시작하는 static 상수로 선언되어 있다.

public void keyPressed(KeyEvent e) {
    if (e.getKeyCode() == KeyEvent.VK_F5)
        System.exit(0); // <F5> 키가 눌러지면 종료.
}

📝 Mouse

💡 마우스 리스너 달기

💬 MouseListener

component.addMouseListener(myMouseListener);

💬 MouseMotionListener

component.addMouseMotionListener(myMouseMotionListener);

💡 MouseEvent 객체 활용

💬 마우스 포인터의 위치

public void mousePressed(MouseEvent e) {
    int x = e.getX(); // 마우스 포인터의 x 위치 리턴
    int y = e.getY(); // 마우스 포인터의 y 위치 리턴
}

💬 마우스 클릭 횟수

public void mouseClicked(MouseEvent e) {
    if(e.getClickCount == 2) // 더블클릭일 때
    ...
}
profile
공부한 거 올려요 :)

0개의 댓글