-
Swing 이벤트 리스너Swing 2023. 4. 9. 12:08
마우스 이벤트 리스너
package ch07; import java.awt.event.KeyEvent; import java.awt.event.KeyListener;import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.JFrame; import javax.swing.JLabel; public class MouseEventListener1 extends JFrame { private JLabel labelText; private int labelTextX; private int labelTextY; public MouseEventListener1() { initData(); setInitLayout(); addEventListener(); } private void initData() { setSize(800,800); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); //초기값 셋팅 labelTextX = 300; labelTextY = 350; labelText = new JLabel("Hello World~"); labelText.setSize(100,100); } private void setInitLayout() { setLayout(null); labelText.setLocation(labelTextX,labelTextY); add(labelText); setVisible(true); } private void addEventListener() { this.addMouseListener(new MouseListener() { //추상 클래스는 this를 넣어주면 된다. @Override public void mouseReleased(MouseEvent e) { labelText.setLocation(e.getX(),e.getY()); } @Override public void mousePressed(MouseEvent e) { } @Override public void mouseExited(MouseEvent e) { } @Override public void mouseEntered(MouseEvent e) { } @Override public void mouseClicked(MouseEvent e) { } }); } public static void main(String[] args) { MouseEventListener1 mouseEventListener1 = new MouseEventListener1(); } }키보드 이벤트 리스너
package ch07; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JFrame; import javax.swing.JLabel; public class MoveLabelFrame3 extends JFrame implements Moveable{ private JLabel labelText; private int labelTextX; private int labelTextY; public MoveLabelFrame3() { initData(); setInitLayout(); addEventListener(); } private void initData() { labelTextX = 300; labelTextY = 350; setSize(800,800); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); //초기값 셋팅 labelText = new JLabel("Hello World~"); labelText.setSize(100,100); } private void setInitLayout() { setLayout(null); add(labelText); labelText.setLocation(labelTextX,labelTextY); setVisible(true); } private void addEventListener() { this.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { // TODO Auto-generated method stub } @Override public void keyReleased(KeyEvent e) { //System.out.println("1"); //현재 이벤트가 일어난 시점에 x, y 좌표값을 확인 // int currentX = labelText.getX(); // int currentY = labelText.getY(); int X = labelTextX ; int Y = labelTextY; if (e.getKeyCode() == KeyEvent.VK_RIGHT) { right(); }else if(e.getKeyCode() == KeyEvent.VK_LEFT) { left(); }else if(e.getKeyCode() == KeyEvent.VK_UP) { up(); }else if(e.getKeyCode() == KeyEvent.VK_DOWN) { down(); } } @Override public void keyPressed(KeyEvent e) { // TODO Auto-generated method stub } }); } @Override public void left() { int X = labelTextX -=50; int Y = labelTextY; if (X < 0) { X=0; labelTextX =0; } labelText.setLocation(X,Y); } @Override public void right() { int X = labelTextX +=50; int Y = labelTextY; if (X > 700) { X=700; labelTextX = 700; } labelText.setLocation(X,Y); } @Override public void up() { int X = labelTextX; int Y = labelTextY -=50; if (Y < 0) { Y=0; labelTextY =0; } labelText.setLocation(X,Y); } @Override public void down() { int X = labelTextX; int Y = labelTextY +=50; if (Y > 700) { Y=700; labelTextY =700; } labelText.setLocation(X,Y); } }package ch07; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; public class MoveLabelFrame4 extends JFrame implements Moveable{ private JLabel player; private int playerX; private int playerY; public MoveLabelFrame4() { initData(); setInitLayout(); addEventListener(); } private void initData() { setTitle("그림 움직여보기"); playerX = 300; playerY = 350; setSize(800,800); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Icon icon = new ImageIcon("images/image3.png"); player = new JLabel(icon); player.setSize(200,200); setResizable(false); } private void setInitLayout() { setLayout(null); add(player); player.setLocation(playerX,playerY); setVisible(true); } private void addEventListener() { this.addKeyListener(new KeyListener() { @Override public void keyTyped(KeyEvent e) { } @Override public void keyReleased(KeyEvent e) { int X = playerX ; int Y = playerY; if (e.getKeyCode() == KeyEvent.VK_RIGHT) { right(); }else if(e.getKeyCode() == KeyEvent.VK_LEFT) { left(); }else if(e.getKeyCode() == KeyEvent.VK_UP) { up(); }else if(e.getKeyCode() == KeyEvent.VK_DOWN) { down(); } } @Override public void keyPressed(KeyEvent e) { } }); } @Override public void left() { int X = playerX -=50; int Y = playerY; if (X < 0) { X=0; playerX =0; } player.setLocation(X,Y); } @Override public void right() { int X = playerX +=50; int Y = playerY; if (X > 600) { X=600; playerX = 600; } player.setLocation(X,Y); } @Override public void up() { int X = playerX; int Y = playerY -=50; if (Y < 0) { Y=0; playerY =0; } player.setLocation(X,Y); } @Override public void down() { int X = playerX; int Y = playerY +=50; if (Y > 570) { Y=570; playerY =570; } player.setLocation(X,Y); } public static void main(String[] args) { new MoveLabelFrame4(); } }'Swing' 카테고리의 다른 글
Swing 사진 교차로 바꿔서 캐릭터 걷게 만들기 (0) 2023.04.09 Swing 로또게임 만들어보기 (0) 2023.04.09 Swing 버튼클릭으로 이미지 색깔 바꾸기 (0) 2023.04.09 Swing 그림에다가 그림 올리기 (0) 2023.04.09 Swing 이미지 넣어보기 (0) 2023.04.09