⭐KeyListener
키보드를 눌렀을 때 호출되는 메서드를 가지고 있는 인터페이스
keyTyped
keyPressed
keyReleased
3개 메서드를 구현할 수 있다.
메서드 안에
if문을 넣어 각 키 값에 맞는 구문을 설계할 수 있다.
if (e.getKeyCode() == KeyEvent.VK_UP) {
System.out.println("위쪽 화살표 누름");
}
예제) 방향키 4개를 누르면 서로 다른 메시지가 호출되는 구문
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
⭐구조
상속 JFrame/ 구현 KeyListener
멤버변수
JTextArea
생성자 (initData, setInitLayout, addEventListener)
메소드
initData (컴포넌트 정의)
setInitLayout (디자인)
addEventListener (상호작용)
오버라이드
keyRealeased
메인코드
----- ----- ----- ----- ----- ----- ----- ----- ----- -----
package _swing2;
import javax.swing.*;
import java.awt.*;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
/**
* 4.29
*/
public class MyKeyEventFrame extends JFrame implements KeyListener {
//member
private final int FRAME_SIZE = 500;
private JTextArea textArea;
//constructor
public MyKeyEventFrame() {
initData();
setInitLayout();
addEventListener();
}
//method
private void initData() {
setSize(FRAME_SIZE, FRAME_SIZE);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
//프레임 사이즈 고정
textArea = new JTextArea();
}
private void setInitLayout() {
setLayout(new BorderLayout());
add(textArea);
// 마지막에 실행
setVisible(true);
}
private void addEventListener() {
textArea.addKeyListener(this); //키보드 누르면 반응
}
//override
@Override
public void keyTyped(KeyEvent e) {} //🤷♂️
@Override
public void keyPressed(KeyEvent e) {} //🤷♂️
@Override
public void keyReleased(KeyEvent e) {
System.out.println("KeyCode: " + e.getKeyCode());
if (e.getKeyCode() == KeyEvent.VK_UP) {
System.out.println("위쪽 화살표 누름");
} else if (e.getKeyCode() == KeyEvent.VK_DOWN) {
System.out.println("아래쪽 화살표 누름");
} else if (e.getKeyCode() == KeyEvent.VK_LEFT) {
System.out.println("왼쪽 화살표 누름");
} else if (e.getKeyCode() == KeyEvent.VK_RIGHT) {
System.out.println("오른쪽 화살표 누름");
}
}//keyReleased
//main - test code
public static void main(String[] args) {
new MyKeyEventFrame();
}//end of main
}//end of class


'Java' 카테고리의 다른 글
| Swing 예제, KeyListener를 활용해 방향키 기반 게임 만들기 (0) | 2025.04.30 |
|---|---|
| Swing 예제, 로또번호 만들기 (0) | 2025.04.30 |
| Swing예제, ActionListener로 버튼 상호작용 (0) | 2025.04.29 |
| Swing 예제, JLabel로 이미지 팝업하기 (0) | 2025.04.29 |
| 스윙 Swing, 자바에서 GUI를 만들어주는 도구 (0) | 2025.04.28 |