KeyTest.java
package mymain;
import java.awt.Dimension;
import java.awt.Point;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import javax.swing.JFrame;
// awt ->확장 -> swing
// Frame JFrame
public class KeyTest extends JFrame implements KeyListener{
//해상도
int screen_w,screen_h;
public KeyTest() {
// TODO Auto-generated constructor stub
super("키보드연습");
//해상도 구하기
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
screen_w = d.width;
screen_h = d.height;
System.out.printf("w=%d h=%d\n",screen_w,screen_h);
//위치
//this.setLocation(200, 100);
//크기지정
//this.setSize(400, 300);
// 위치 + 크기정보
this.setBounds(200, 100, 400, 300);
this.setResizable(false);//크기변경불가
//보여줘라
this.setVisible(true);
//키보드 이벤트 등록
// Delegation Event Model(위임이벤트모델)
//this에서 키이벤트가 발생하면 처리를 this에게 위임
this.addKeyListener(this);
//종료코드
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new KeyTest();
}
//-------------------------------------------------
@Override
public void keyTyped(KeyEvent e) {
// TODO Auto-generated method stub
}
@Override
public void keyPressed(KeyEvent e) {
// TODO Auto-generated method stub
int key = e.getKeyCode();//VK_키
//System.out.println(key);
//현재 윈도우의 위치정보 얻기
Point pt = this.getLocation();
//왼쪽으로 이동
if(key==KeyEvent.VK_LEFT) {
//pt.x--;
pt.x-=5;
} else if(key==KeyEvent.VK_RIGHT) {
pt.x+=5;
} else if(key==KeyEvent.VK_UP) {
pt.y-=5;
} else if(key==KeyEvent.VK_DOWN) {
pt.y+=5;
}
//왼쪽화면을 벗어나면
if(pt.x < 0-400) {
//오른쪽 화면으로 보여져라
pt.x=screen_w;
} else if(pt.x > screen_w) {
pt.x=0-400;
}
if(pt.y < 0-300) {
pt.y=screen_h;
} else if(pt.y > screen_h) {
pt.y=0-300;
}
//현재위치를 pt로 이동시킨다
this.setLocation(pt);
}
@Override
public void keyReleased(KeyEvent e) {
// TODO Auto-generated method stub
}
}
