JAVA/GUI

[자바] KeyListener + Scanner

yujin0517 2021. 7. 20. 23:13

Scanner로 문자 입력받아 창에 쓰기 + 키코드 출력

 

KeyListener를 설명하는 글과 동일한 틀을 사용했습니다.

다른 것은 메인메소드입니다. 

메인메소드에 Scanner 클래스를 사용하여 콘솔 창에 문자를 입력하면 프레임 창에 표시되도록 코드를 작성하였습니다.

이 코드를 작성하여 " myFrmae3.area.setText(inputUser); " inputUser에 입력된 문자를 setText 메소드를 통해 area에 표시되도록 하였습니다. 

 

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

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

class MyFrame3 extends JFrame implements KeyListener { // 키보드 이벤트

	JTextArea area;

	public MyFrame3() {
		initData();
		setInitLayout();
		addEventListener();
	}

	private void initData() {
		setTitle("키보드 이벤트 리스너 연습");
		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();
		System.out.println("keycode: " + keycode);

	}

	// 키보드를 땠을 때 호출, 모든 키보드에 반응함.
	@Override
	public void keyReleased(KeyEvent e) {

	}
}

//////////////////////////////////////////////
public class MainTest3 {

	public static void main(String[] args) {
		MyFrame3 myFrmae3 = new MyFrame3();
		
		System.out.println("글자를 입력하세요!");
		Scanner sc = new Scanner(System.in);
		while(sc.hasNext()) {
			String inputUser = sc.next();
			myFrmae3.area.setText(inputUser);
		}
	}

}

 

 => 콘솔 창에 문자를 입력하면 프레임창에 그대로 출력되고, 프레임창에 문자를 하나 입력할 때마다 콘솔창에 키코드가 출력됩니다.  

실행 완료

 

 

2021.07.20

'JAVA > GUI' 카테고리의 다른 글

[자바] 콜백(CallBack) - JFrame  (0) 2021.07.19
[자바] JFrame 이미지 추가하기 - 슈퍼마리오(1)  (0) 2021.07.17
[자바] KeyListener  (0) 2021.07.15
[자바] JPanel  (0) 2021.07.15
[자바] JButton 만들기 + 클릭 이벤트  (0) 2021.07.14