MouseWheelEvent
MouseWheelEvent (마우스 휠 이벤트)
컴포넌트에서 마우스 휠이 회전했음을 나타내는 이벤트입니다.
본문
public class MouseWheelEvent extends MouseEvent
휠 마우스는 가운데 버튼 대신 휠을 가진 마우스입니다. 이 휠은 사용자 쪽으로 또는 사용자로부터 멀어지는 방향으로 회전할 수 있습니다. 마우스 휠은 주로 스크롤에 사용되지만 다른 용도로도 사용될 수 있습니다.
컴포넌트의 addMouseWheelListener 메서드로 "흥미로운" 마우스 이벤트를 받도록 등록한 모든 MouseWheelListener 객체에 MouseWheelEvent 객체가 전달됩니다.
마우스 휠은 스크롤 컴포넌트와 특별한 관계가 있으므로 MouseWheelEvent는 다른 MouseEvent와는 조금 다르게 전달됩니다. 다른 MouseEvent는 보통 마우스 커서 바로 아래의 컴포넌트에 변화를 주는 반면(예: 버튼 클릭), MouseWheelEvent는 종종 마우스 커서에서 떨어진 곳에 영향을 줍니다(ScrollPane 안의 컴포넌트 위에서 휠을 움직이면 ScrollPane의 스크롤바 중 하나가 스크롤되어야 하는 것처럼).
MouseWheelEvent는 마우스 커서 아래의 컴포넌트부터 전달을 시작합니다. 컴포넌트에 MouseWheelEvent가 활성화되어 있지 않으면 이벤트는 휠 스크롤이 활성화된 첫 번째 조상 컨테이너(보통 휠 스크롤이 활성화된 ScrollPane)로 전달됩니다. 소스 컴포넌트와 x, y 좌표는 이벤트의 최종 목적지(ScrollPane)를 기준으로 합니다. 이는 복잡한 GUI를 수정 없이 ScrollPane에 설치하고 모든 MouseWheelEvent가 ScrollPane으로 전달되어 스크롤되게 합니다.
일부 AWT 컴포넌트는 자체 스크롤바를 표시하고 스크롤을 처리하는 네이티브 위젯으로 구현됩니다. 이때 마우스 휠이 그러한 컴포넌트 위에서 움직이면 이벤트가 네이티브 위젯으로 직접 전달되고 조상으로 전파되지 않습니다.
플랫폼은 마우스 휠이 움직일 때 발생해야 할 스크롤 양의 커스터마이즈를 제공합니다. 가장 흔한 두 가지 설정은 일정 수의 "단위"(unit, 보통 텍스트 기반 컴포넌트의 텍스트 줄)를 스크롤하거나 전체 "블록"(block, page-up/page-down과 유사)을 스크롤하는 것입니다. MouseWheelEvent는 기반 플랫폼 설정에 맞추기 위한 메서드를 제공하며, 사용자가 언제든지 설정을 바꿀 수 있습니다.
MouseWheelEvent 클래스에는 마우스 휠이 회전된 "클릭" 수를 얻는 메서드가 포함됩니다. getWheelRotation()은 휠이 회전된 노치 수에 해당하는 정수 "클릭" 수를 반환합니다. 또한 getPreciseWheelRotation() 메서드는 부분 회전이 발생한 경우 "클릭" 수를 double로 반환합니다. getPreciseWheelRotation()은 노치가 없는 자유 회전 휠처럼 고해상도 휠을 지원하는 마우스에 유용하며, 이를 사용해 마우스 휠 이벤트를 더 정밀하게 처리하고 시각적 인식을 더 부드럽게 만들 수 있습니다.