응용프로그램 내에 포커스(키 입력의 독점권)를 가진 컴포넌트가 키 입력을 독점하기 때문에, 현재 포커스를 가진 컴포넌트에만 Key 이벤트가 발생한다.
component.requestFocus(); // component에게 포커스를 주어 키 입력을 받을 수 있게 함.
모든 키 입력에 대해서는 keyPressed()와 keyReleased()가 호출되고 특별히 유니코드인 A~Z, a~z, 0~9, !, @ 등에 대해서는 keyTyped()이 추가적으로 호출된다.
<F1>
, <Delete>
, <Alt>
등의 키가 입력될 때 keyTyped()는 호출되지 않는다.component.addKeyListener(myKeyListener);
입력된 키의 유니코드 값을 리턴한다. (유니코드 키가 아닌 경우, KeyEvent.CHAR_UNDEFINED를 리턴)
public void keyPressed(KeyEvent e) {
if (e.getKeyChar() == 'q')
System.exit(0); // q 키가 눌러지면 종료.
}
모든 키에 대해 정수형의 키 코드 값을 리턴한다.
getKeyCode()가 리턴한 키 코드와 가상 키 값을 비교한다.
가상 키는 KeyEvent 클래스에 VK_로 시작하는 static 상수로 선언되어 있다.
public void keyPressed(KeyEvent e) {
if (e.getKeyCode() == KeyEvent.VK_F5)
System.exit(0); // <F5> 키가 눌러지면 종료.
}
component.addMouseListener(myMouseListener);
component.addMouseMotionListener(myMouseMotionListener);
public void mousePressed(MouseEvent e) {
int x = e.getX(); // 마우스 포인터의 x 위치 리턴
int y = e.getY(); // 마우스 포인터의 y 위치 리턴
}
public void mouseClicked(MouseEvent e) {
if(e.getClickCount == 2) // 더블클릭일 때
...
}