[java]자바 스윙 키보드, 마우스 이벤트
- 프로그래밍/JAVA
- 2018. 9. 11.
Java swing Event
1. 자바 스윙 창을 만든다 아래 링크 참고.
2. 버튼을 만든다.(이미지는 나중에)
3. 키 이벤트를 만든다.
자바 스윙 키보드, 마우스 이벤트 코드.
아래 있는 코드를 txt파일로 저장해놓았습니다.
blog패키지의 Event클래스에 만들었습니다.
아래는 전체 코드입니다.
package blog;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Event extends JFrame{
public Event() {
// TODO 자동 생성된 생성자 스텁
setTitle("이벤트");// 타이틀
setSize(1280,720); //창의 크기
setVisible(true); //창이 화면에 보이게 해줌
setResizable(false); //창의 크기를 변경하지 못하게 해줌
setLocationRelativeTo(null); // 창을 실행할때 가운데 나타나게 해줌
JButton b1=new JButton("움직이는 버튼"); //버튼을 하나 만듬
setLayout(null);
/*버튼이 움직이게 해줌*/
addKeyListener(new KeyAdapter() { //키 이벤트
@Override
public void keyPressed(KeyEvent e) { //키 눌렀을때
// TODO Auto-generated method stub
switch (e.getKeyCode()) {//키 코드로 스위치
case KeyEvent.VK_DOWN: //방향키(아래) 눌렀을때
b1.setLocation(b1.getX(), b1.getY()+10);
break;
case KeyEvent.VK_UP: //방향키(위)눌렀을때
b1.setLocation(b1.getX(), b1.getY()-10);
break;
case KeyEvent.VK_LEFT:// 방향키(왼)눌렀을때
b1.setLocation(b1.getX()-10, b1.getY());
break;
case KeyEvent.VK_RIGHT:// 방향키(오른)눌렀을때
b1.setLocation(b1.getX()+10, b1.getY());
break;
default:
break;
}
}
});
b1.addMouseListener(new MouseAdapter() { // 마우스 이벤트
@Override
public void mouseEntered(MouseEvent e) { // 마우스 들어왔을때
}
@Override
public void mouseExited(MouseEvent e) { // 마우스 나왔을때
}
@Override
public void mousePressed(MouseEvent e) { // 클릭했을때
System.exit(0);
}
});
b1.setBounds(0, 0, 150, 30); //버튼의 크기 위치 지정
add(b1); //버튼을 프레임에 추가
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//창이 정상적으로 종료되게 해줌
}
public static void main(String[] args) {
new Event(); //실행
}
}
자바 키보드 이벤트.
스위치문을 사용해서 정해진 키를 누르면 정해진 명령을 수행합니다.
그 예로 아래의 코드중 방향키 아래를 누르면 y축 방향으로 10만큼 내려갑니다.
switch(e.getKeyCode()){
case KeyEvent.VK_DOWN: //방향키(아래) 눌렀을때
b1.setLocation(b1.getX(), b1.getY()+10);
break;
case KeyEvent.VK_UP: //방향키(위)눌렀을때
b1.setLocation(b1.getX(), b1.getY()-10);
break;
case KeyEvent.VK_LEFT:// 방향키(왼)눌렀을때
b1.setLocation(b1.getX()-10, b1.getY());
break;
case KeyEvent.VK_RIGHT:// 방향키(오른)눌렀을때
b1.setLocation(b1.getX()+10, b1.getY());
break;
default:
break;
}
귀찮아서 아래 사진을 대충만들기는 했지만 보실만 할겁니다. (아래 720앞은 y입니다 살짝 짤렸네요.)
아래 사진은 좌표인데 왼쪽 맨끝부분이 x=0 이고 y=0입니다.
그러니 버튼을 오른쪽으로 옮기고 싶다면 x의 값을 올리면 되고 버튼을 아래로 내리고 싶다면 y의 값을 내리면 되는 것 입니다.
자바 마우스 이벤트.
이건 뭐 키 이벤트만 하기도 뭐해서 넣었습니다.
움직이는 버튼에 System.exit(0); <<--종료를 넣어서 버튼을 클릭하면 프로그램이 꺼지게 됩니다.
코드 실행
뭐 별거는 아니고 위의 코드를 실행하면 이렇게 나온다는 겁니다.