Java Cursor 클래스란 무엇인가?
Cursor(커서)는 Java AWT 패키지에 포함된 Object 클래스의 하위 클래스로, 화면 위에 나타나는 포인터 또는 표시자(indicator)를 의미합니다. 커서는 사용자가 마우스를 통해 시스템과 상호작용할 때 입력 위치를 선택하고 시각적으로 안내하는 역할을 합니다.
Java 애플리케이션에서 커서 모양을 변경하면 사용자 경험(UX)을 크게 향상시킬 수 있습니다. 예를 들어, 클릭 가능한 요소 위에서는 손 모양 커서를, 처리 중에는 대기 커서를 표시하여 현재 상태를 직관적으로 전달할 수 있습니다.
Cursor 클래스에서 제공하는 커서 종류
Cursor 클래스는 다음과 같이 미리 정의된(predefined) 다양한 커서 타입 상수를 제공합니다.
- DEFAULT_CURSOR – 기본 화살표 모양 커서
- CROSSHAIR_CURSOR – 십자가(+ ) 모양 커서
- HAND_CURSOR – 손바닥 모양 커서 (링크나 클릭 가능 요소에 주로 사용)
- TEXT_CURSOR – 텍스트 입력 영역에서 사용되는 I 빔(I-beam) 모양 커서
- WAIT_CURSOR – 작업 처리 중임을 알리는 모래시계 또는 대기 모양 커서
그 외에도 MOVE_CURSOR, RESIZE_CURSOR, N_RESIZE_CURSOR, E_RESIZE_CURSOR 등 방향별 리사이즈 커서와 CUSTOM_CURSOR를 통해 사용자 지정 이미지 커서도 만들 수 있습니다.
Cursor 클래스의 주요 메서드
| 메서드 | 설명 |
|---|---|
| getDefaultCursor() | 시스템의 기본 커서 객체를 반환합니다. |
| getName() | 현재 커서의 이름을 문자열로 반환합니다. |
| getPredefinedCursor(int type) | 지정된 타입 상수에 해당하는 미리 정의된 커서 객체를 반환합니다. |
| getSystemCustomCursor(String name) | 시스템에 등록된 사용자 지정 커서를 이름으로 가져옵니다. |
| getType() | 현재 커서의 타입 값을 정수(int) 형태로 반환합니다. |
실전 예제: JFrame에서 손 모양 커서 설정하기
아래 예제는 Swing의 JFrame을 생성하고, 프레임 전체에 HAND_CURSOR를 적용하는 간단한 코드입니다.
import java.awt.*;
import javax.swing.*;
public class CursorTest extends JFrame {
public CursorTest() {
setTitle("Cursor Test");
// 손 모양(HAND) 커서 생성 및 적용
Cursor cursor = new Cursor(Cursor.HAND_CURSOR);
setCursor(cursor);
setSize(375, 250);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String[] args) {
new CursorTest();
}
}실행 결과
코드를 실행하면 아래 그림과 같이 마우스 포인터가 일반 화살표 대신 손 모양 커서로 변경된 것을 확인할 수 있습니다. 프레임 내부 어디에 마우스를 올려도 동일하게 적용됩니다.

마무리
Cursor 클래스는 GUI 애플리케이션에서 사용자에게 시각적 피드백을 제공하는 필수적인 도구입니다. 버튼, 링크, 로딩 화면 등 상황에 맞는 커서를 적절히 활용하면 인터페이스의 직관성과 완성도를 한층 높일 수 있습니다. 필요하다면 Toolkit 클래스의 createCustomCursor() 메서드를 사용해 자신만의 이미지 커서를 정의하는 것도 가능합니다.