ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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();
    	}
    }

     

     

     

Designed by Tistory.