Java/Excercise

swing ch05 EventListenerEx5

낭구리 2021. 9. 6. 17:51
package ch05;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

import javax.swing.JFrame;
import javax.swing.JLabel;

//class MyFrame5 extends JFrame implements MouseListener{
class MyFrame5 extends JFrame {
	// 클릭을 하거나 들어오거나 나갓을떄 동작하는 이벤트
	// 안드로이드나 웹에서도 많이 사용
	JLabel label;
	

	public MyFrame5() {
		initData();
		setInitLayout();
		addEventListener();
	}

	private void initData() {
		setTitle("마우스 이벤트");
		setSize(500, 500);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		label = new JLabel("Hello");
		label.setSize(50, 50); // 라벨크기
		label.setOpaque(true);
		label.setBackground(Color.blue);
		label.setForeground(Color.WHITE);
		
//	    label.setAlignmentX(); : 라벨에 들어가는 Text의 정렬방법
//	    label.setSize(WIDTH, HEIGHT); : 라벨의 가로세로 사이즈
//	    label.setText(); : 라벨에 텍스트 값을 넣습니다.
//	    label.setBackground(); : 배경값을 지정합니다 
//		label.setForeground(); : 텍스트의 색상을 지정합니다
		
		System.out.println(label.getBounds());// 라벨의 크기를 확인하는 방법
		// java.awt.Rectangle[x=0,y=0,width=50,height=50]
	}

	private void setInitLayout() {
		setVisible(true);
		setLayout(null);
		add(label);
		label.setLocation(50, 50);

	}

	private void addEventListener() {
//		this.addMouseListener(this);
		
		//익명 구현객체로 코드 변경해주세요
		this.addMouseListener(new MouseListener() {
			
			@Override
			public void mouseReleased(MouseEvent e) {
				System.out.println("마우스 버튼을 눌렀다가 뗏습니다.");
				//안드로이드는 클릭을 떼는 순간 이벤트를 넣어 세분화시킴
			}
			
			@Override
			public void mousePressed(MouseEvent e) {
//				System.out.println("마우스 버튼이 눌러졌습니다.");
			}
			
			@Override
			public void mouseExited(MouseEvent e) {
				System.out.println("마우스가 나갔습니다.");
			}
			
			@Override
			public void mouseEntered(MouseEvent e) {
				System.out.println("마우스가 들어왔습니다.");
			}
			
			@Override
			public void mouseClicked(MouseEvent e) {
			}
		});
		
		
		
	}

	// 마우스가 클릭되었을 때 실행되는 메서드
//	@Override
//	public void mouseClicked(MouseEvent e) {
//		System.out.println(e.getX() + " : x좌표 값");
//		System.out.println(e.getY() + " : y좌표 값"); // 마우스클릭시 이벤트를 등록해야함 >>addEventListener
//		System.out.println(getHeight() + ": getHeight");
//		System.out.println(getWidth() + ": getWidth"); // 프레임 사이즈보는 방법
//
//		label.setLocation(e.getX(), e.getY() - label.getBounds().height); // 클릭해서 그 지점으로 이동
		// label.getBounds().height 높이를 빼서 클릭하는 위치에 맞게 이동
//	}
//
//	// 마우스를 누르고 있을때 실행되는 메서드
//	@Override
//	public void mousePressed(MouseEvent e) {
//	}
//
//	// 마우스를 눌럿다가 떨어졌을때 이벤트를 캐치하는 메서드
//	@Override
//	public void mouseReleased(MouseEvent e) {
//	}
//
//	// 마우스가 영역안에 들어왔을때 실행되는 메서드
//	@Override
//	public void mouseEntered(MouseEvent e) {
//	}
//
//	// 마우스가 나갔을 때 실행되는 메서드
//	@Override
//	public void mouseExited(MouseEvent e) {
//	}
}

public class EventListenerEx5 {

	public static void main(String[] args) {

		new MyFrame5();

	}

}

'Java > Excercise' 카테고리의 다른 글

swing ch05 EventListenerEx7  (0) 2021.09.07
swing ch05 EventListenerEx6  (0) 2021.09.07
swing ch05 EventListenerEx4  (0) 2021.09.06
swing ch05 EventListenerEx3  (0) 2021.09.06
swing ch05 EventListenerEx2  (0) 2021.09.06