[java] 자바 스윙 컴포넌트에서 마우스 포인터의 위치를 추적하는 방법은 어떻게 되나요?
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class MouseTracker extends JFrame {
private JPanel panel;
public MouseTracker() {
panel = new JPanel();
add(panel);
// Mouse 이벤트 핸들링
panel.addMouseListener(new MouseListener() {
@Override
public void mouseClicked(MouseEvent e) {
// 마우스를 클릭했을 때의 동작
}
@Override
public void mousePressed(MouseEvent e) {
// 마우스 버튼을 눌렀을 때의 동작
}
@Override
public void mouseReleased(MouseEvent e) {
// 마우스 버튼을 뗐을 때의 동작
}
@Override
public void mouseEntered(MouseEvent e) {
// 마우스 컴포넌트에 진입했을 때의 동작
}
@Override
public void mouseExited(MouseEvent e) {
// 마우스 컴포넌트를 벗어났을 때의 동작
}
});
// Mouse 모션 이벤트 핸들링
panel.addMouseMotionListener(new MouseMotionListener() {
@Override
public void mouseDragged(MouseEvent e) {
// 마우스를 드래그할 때의 동작
}
@Override
public void mouseMoved(MouseEvent e) {
int x = e.getX(); // x 좌표
int y = e.getY(); // y 좌표
System.out.println("마우스 위치: x=" + x + ", y=" + y);
}
});
setTitle("Mouse Tracker");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
public static void main(String[] args) {
MouseTracker mt = new MouseTracker();
mt.setVisible(true);
}
}
위의 예시 코드는 JPanel 내에서 마우스 이벤트를 처리하고, 마우스 위치를 콘솔에 출력하는 방법을 보여줍니다. MouseListener 및 MouseMotionListener를 구현하여 마우스 이벤트를 처리하고, 마우스 포인터의 위치를 추적할 수 있습니다.
참고 자료: