Эффект, который я пытался создать, заключается в том, что значок курсора мыши изменяется всякий раз, когда мышь входит в определенную зону на JPanel и переключается на значение по умолчанию, когда оно покидает зону. Я использую функцию MouseMoved в классе MouseMotionListener, которая всякий раз, когда мышь перемещается по 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