[java] 자바 스윙 컴포넌트에서 키보드 이벤트를 처리하는 방법은 어떻게 되나요?
keyPressed(KeyEvent e)
: 이 메소드는 키가 눌렸을 때 호출됩니다.keyReleased(KeyEvent e)
: 이 메소드는 키가 놓였을 때 호출됩니다.keyTyped(KeyEvent e)
: 이 메소드는 유니코드 문자가 입력될 때 호출됩니다.
아래는 KeyListener를 사용하여 키보드 이벤트를 처리하는 예제입니다:
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class KeyboardEventExample extends JFrame implements KeyListener {
private JTextArea textArea;
public KeyboardEventExample() {
textArea = new JTextArea();
textArea.addKeyListener(this);
// 다른 초기화 및 설정 코드
add(textArea);
}
@Override
public void keyTyped(KeyEvent e) {
// keyTyped 이벤트 처리
char keyChar = e.getKeyChar();
System.out.println("Key Typed: " + keyChar);
}
@Override
public void keyPressed(KeyEvent e) {
// keyPressed 이벤트 처리
int keyCode = e.getKeyCode();
System.out.println("Key Pressed: " + keyCode);
}
@Override
public void keyReleased(KeyEvent e) {
// keyReleased 이벤트 처리
int keyCode = e.getKeyCode();
System.out.println("Key Released: " + keyCode);
}
public static void main(String[] args) {
KeyboardEventExample frame = new KeyboardEventExample();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
}
}
위 예제에서는 JTextArea 컴포넌트를 생성하고 KeyListener를 해당 컴포넌트에 추가하여 키 이벤트를 처리합니다.
참고 문헌:
- Oracle Java Documentation: https://docs.oracle.com/javase/8/docs/api/java/awt/event/KeyListener.html