티스토리 뷰

JAVA/PRIMER

[JAVA] GUI - 키 이벤트

yulrang 2018. 4. 19. 14:19
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

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

// ActionEvenct 처리 -> ActionListener
// KeyEvent 처리		-> KeyListener
// MouseEvent 처리	-> MouseListenera

// 키 입력 이벤트 처리 인터페이스 KeyListener 구현
class MyFrame5 extends JFrame implements KeyListener{
	JTextArea ta = new JTextArea();
	
	public MyFrame5(){
		ta.addKeyListener(this);
		add(ta);
		
		setSize(300,200);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
		
	}

	// 키가 눌려진 상태일 때의 동작을 정의
	@Override
	public void keyPressed(KeyEvent e) {
		String s = e.getKeyChar() + " " +
					e.getKeyCode() + " " +
					"ALT " + e.isAltDown() + " " +
					"SHIFT " + e.isShiftDown() + " " +
					"CTRL " + e.isControlDown() + " " ;
		System.out.println(s);
	}

	// 키를 눌렀다 뗐을 때의 동작을 정의
	@Override
	public void keyReleased(KeyEvent e) {
		
	}
	
	// 글자가 입력됐을 때의 동작을 정의
	@Override
	public void keyTyped(KeyEvent e) {
		// TODO 자동 생성된 메소드 스텁
		
	}
}


public class 키이벤트1 {

	public static void main(String[] args) {
		new MyFrame5();
	}

}


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

import javax.swing.JFrame;
import javax.swing.JPanel;

class MyFrame6 extends JFrame implements KeyListener{
	JPanel p = new JPanel();
	int x=0, y=0;
	
	public MyFrame6(){
		setLayout(null);
		p.setBounds(x, y, 50, 50);
		p.setBackground(Color.RED);
		addKeyListener(this);
		add(p);
		
		setSize(600,600);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}
	@Override
	public void keyPressed(KeyEvent e) {
		int keyCord = e.getKeyCode();
		
		switch(keyCord){
		case KeyEvent.VK_LEFT :
			x -= 10;
			break;
		case KeyEvent.VK_UP :
			y -= 10;
			break;
		case KeyEvent.VK_RIGHT :
			x += 10;
			break;
		case KeyEvent.VK_DOWN :
			y += 10;
			break;
		}
		p.setLocation(x,y);
	}
	@Override
	public void keyReleased(KeyEvent e) {
		
	}
	@Override
	public void keyTyped(KeyEvent e) {
		
	}
}
public class 키이벤트2 {

	public static void main(String[] args) {
		new MyFrame6();
	}

}


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

import javax.swing.JFrame;
import javax.swing.JPanel;

class MyFrame6_2 extends JFrame implements KeyListener{
	JPanel p = new JPanel();
	int x=0, y=0;
	
	public MyFrame6_2(){
		setLayout(null);
		p.setBounds(x, y, 50, 50);
		p.setBackground(Color.RED);
		addKeyListener(this);
		add(p);
		
		setSize(600,600);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		setVisible(true);
	}
	@Override
	public void keyPressed(KeyEvent e) {
		
	}
	@Override
	public void keyReleased(KeyEvent e) {
		int keyCord = e.getKeyCode();
		
		switch(keyCord){
		case KeyEvent.VK_LEFT :
			x -= 10;
			break;
		case KeyEvent.VK_UP :
			y -= 10;
			break;
		case KeyEvent.VK_RIGHT :
			x += 10;
			break;
		case KeyEvent.VK_DOWN :
			y += 10;
			break;
		}
		p.setLocation(x,y);
	}
	@Override
	public void keyTyped(KeyEvent e) {
		
	}
}
public class 키이벤트2_2 {

	public static void main(String[] args) {
		new MyFrame6_2();
	}

}


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

[JAVA] JPanel - paintComponent  (0) 2018.04.19
[JAVA] GUI - 마우스 이벤트  (0) 2018.04.19
[JAVA] GUI - JTextField, JTextArea  (0) 2018.04.19
[JAVA] GUI - 이벤트  (0) 2018.04.19
[JAVA] GUI - 배치관리자  (0) 2018.04.19
댓글