package CHAPTER11;

import javax.swing.*;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;

// MouseListener 인터페이스를 구현하여 모든 마우스 이벤트 처리
class MyMouseListener implements MouseListener {
    @Override
    public void mouseClicked(MouseEvent e) {
        System.out.println("마우스가 클릭되었습니다: X=" + e.getX() + ", Y=" + e.getY());
    }
    @Override
    public void mousePressed(MouseEvent e) {
        System.out.println("마우스 버튼이 눌렸습니다.");
    }
    @Override
    public void mouseReleased(MouseEvent e) {
        System.out.println("마우스 버튼이 떼어졌습니다.");
    }
    @Override
    public void mouseEntered(MouseEvent e) {
        System.out.println("마우스가 패널에 들어왔습니다.");
    }
    @Override
    public void mouseExited(MouseEvent e) {
        System.out.println("마우스가 패널에서 나갔습니다.");
    }
}

public class SelfTest_MouseListener extends JFrame {
	public SelfTest_MouseListener() {
		setTitle("MouseListener Example");        
        setSize(300, 200);
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        
        JPanel panel = new JPanel();
        
        // MyMouseListener 클래스의 객체를 이벤트 리스너로 등록
        panel.addMouseListener(new MyMouseListener());

        add(panel);
        setVisible(true);
	}
    public static void main(String[] args) {
        new SelfTest_MouseListener();
    }
}