[java] 자바 스윙 컴포넌트에서 키보드 이벤트를 처리하는 방법은 어떻게 되나요?
  1. keyPressed(KeyEvent e): 이 메소드는 키가 눌렸을 때 호출됩니다.
  2. keyReleased(KeyEvent e): 이 메소드는 키가 놓였을 때 호출됩니다.
  3. 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를 해당 컴포넌트에 추가하여 키 이벤트를 처리합니다.

참고 문헌: