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 |