내가 만들려고했던 효과는 마우스가 JPanel의 특정 영역에 들어갈 때마다 마우스 커서 아이콘이 변경되고 영역을 벗어날 때마다 기본값으로 전환된다는 것입니다. MouseMotionListener 클래스의 MouseMoved 기능을 사용하고 있습니다. 마우스를 움직이면 JPanel은 좌표가 특수 영역에 해당하는지 확인합니다.Java에서 커서 위치를 효율적으로 추적하는 방법은 무엇입니까?
그러나이 방법으로 컴퓨터 프로세서의 변형률이 매우 높으므로 더 효율적인 방법이 있는지 묻고 싶습니다. 어떤 도움을 주셔서 감사합니다.
이 프로그램이하는 것은 JPanel에 그림을 그리고 Connection 단추를 선택하면 사용자가 한 그림을 클릭 한 다음 다른 그림을 클릭하면 그림이 한 줄로 연결됩니다.
숫자는 JPanel에서 그려지며 해당 영역 경계가 저장되므로 마우스를 움직이면 현재 X 및 Y 좌표가 해당 영역 중 하나에 있는지 검사하고 커서가 변경되면 커서를 변경합니다. checkValidConnectionRegion은 현재 X 및 Y 변수가 그림의 영역 내에 있는지 확인합니다. 다음은 핸들러 코드입니다.
public void mouseMoved(MouseEvent e)
{
if(GUI.Connectionbutton.isSelected())
{
x = e.getX();
y = e.getY();
checkValidConnectionRegion();
if(validConnectionRegion)
setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
if(!validConnectionRegion)
setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
}
좋아. – Hans