JAVA/GUI

[자바] KeyListener

yujin0517 2021. 7. 15. 16:32

키보드를 아무거나 눌렸을 때, 해당 키의 키 코드 출력 코드 작성하기

 

  • 어떠한 키를 입력하면 해당 키 코드와 키가 출력됨
  • Frame을 상속받고, KeyListener을 인터페이스로 받음
  • JTextArea를 사용하여 텍스트 입력 영역을 만듦 
  • e.getKeyCode, e.getKeyChar 메소드를 사용하여 keycode와 keychar를 리턴함

 

import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.JFrame;
import javax.swing.JTextArea;

class MyKeyEvent extends JFrame implements KeyListener{
	
	JTextArea area;  //창에 텍스트 영역을 만들기위한 변수 선언.
	
	public MyKeyEvent() {
		initData();
		setInitLayout();
		addEventListener();
	}
	
	private void initData() {
		setTitle("keyBoard Event!");
		setSize(500, 500);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		area = new JTextArea();  //텍스트 입력 변수의 객체 생성
	}
	
	private void setInitLayout() {
		setVisible(true);
		this.add(area);  //창에 텍스트 입력을 추가
	}
	
	private void addEventListener() {
		area.addKeyListener(this);  //텍스트 입력 부분에 키보드의 입력을 감지하도록 함
	}

	//////////////////////////////////////////////////
	@Override
	public void keyTyped(KeyEvent e) {
		
	}

	@Override
	public void keyPressed(KeyEvent e) {
		int keycode = e.getKeyCode();  //각 키의 키코드를 변수에 대입
		char keychar = e.getKeyChar();  //각 키의 문자 혹은 숫자를 변수에 대입
		System.out.print("keycode : " + keycode + " => " + keychar);
		System.out.println();
	}

	@Override
	public void keyReleased(KeyEvent e) {
		
	}
}
///////////////////////////////////////////////////////
public class Key {
	public static void main(String[] args) {
		new MyKeyEvent();  //객체 생성하여 창을 실행하도록 함
	}
}

문자 및 숫자 입력
콘솔창

 

이 코드는 단순히 키보드의 키를 입력하면 해당 키를 키 코드로 출력해주는 코드입니다. 

다음 글에서는 창에 배경이미지와 캐릭터이미지를 추가하고, 키보드의 방향키를 사용해 캐릭터를 움직이게 하는 코드를 작성하겠습니다.

 

2021.07.15