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();
}
}