1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | package study; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; public class Point extends JFrame implements KeyListener { JFrame frame; java.awt.Point p; public Point() { super("Frame 움직이기"); this.addKeyListener(this); frame = new JFrame(); frame.setBounds(300, 200, 300, 200); //보여줘라 this.setVisible(true); frame.setFocusable(true); //종료코드 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } public static void main(String[] args) { new Point(); } @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyPressed(KeyEvent e) { p = frame.getLocation(); if (e.getKeyCode() == 37) System.out.println("왼쪽 누름"); frame.setLocation(p.x - 20, p.y); if (e.getKeyCode() == 38) System.out.println("위 누름"); frame.setLocation(p.x, p.y - 20); if (e.getKeyCode() == 39) System.out.println("오른쪽 누름"); frame.setLocation(p.x + 20, p.y); if (e.getKeyCode() == 40) System.out.println("아래 누름"); frame.setLocation(p.x, p.y + 20); } @Override public void keyReleased(KeyEvent e) { // TODO Auto-generated method stub } } /* http://itlove.tistory.com/254 f.getLocation(); 프레임의 현재 좌표( x좌표, y좌표 )를 가져옵니다. Point p = f.getLocation(); 프레임의 현재 좌표값을 변수에 넣어 줍니다. getLocation 메서드는 Point를 반환하기 때문에 Point 로 받아주어야 합니다. Point 는 x좌표( Point.x )와 y좌표( Point.y ) 2개의 값을 갖는 클래스입니다. import java.awt.*; Point 클래스를 import 해줘야 합니다. 간단하게 * 를 이용했습니다. if( e.getKeyCode() == 37 ) f.setLocation( p.x-20, p.y); setLocation 은 좌표값을 수정해주는 메서드입니다. 2개의 매개변수를 넣어주어야 하며 첫번째 매개변수에 x좌표를 2번째 매개변수에 y좌표를 넣어주어야 합니다. 왼쪽키( 키코드 37)을 눌렀을때 왼쪽으로 이동해야 하니까 x좌표를 -20 만큼 이동해 준것입니다. 현재 좌표에서 20만큼 이동해야 하기 때문에 getLocation 에서 가져온 좌표값을 이용했습니다. if( e.getKeyCode() == 38 ) f.setLocation( p.x, p.y-20); 반대로 38( 위쪽 )을 눌렀을때는 y좌표를 20을 빼주었습니다. 컴퓨터상에서는 맨위 세로값이 0이고 아래로 갈수록 커지거든요. */ | cs |
'IT > 자바' 카테고리의 다른 글
[자바] 이미지 사이즈 알아보는 방법 (0) | 2018.06.28 |
---|---|
[자바] 키보드로 프레인 이동시 반대쪽에서 보이게 하기 (0) | 2018.06.28 |
자바 단축키 (0) | 2018.06.23 |
new()와 getInstance()의 차이 (0) | 2018.06.19 |
2018 06 16 성적관리 dbService, vo, test 생성 (0) | 2018.06.16 |