Java: получение абсолютной позиции мыши в JPanel по координате, по которой щелкнул пользователь - PullRequest
0 голосов
/ 14 августа 2010

Например, предположим, у меня есть чертеж в подклассе JPanel с JScrollPanes, и я хочу зафиксировать точки, на которые нажимает пользователь. Предположим, например, что область рисования внутри JPanel изменяется от 0 до 10000, а размер экрана априори неизвестен. Учитывая координаты мыши в событии щелчка, можно ли определить, где он находится в диапазоне 0 - 10000? Например, координата на экране будет (300, 500) в соответствии с событием, но фактическая позиция на холсте может быть (5890, 3200).

1 Ответ

0 голосов
/ 14 августа 2010

Координаты мыши при доставке к компоненту даны относительно компонента, поэтому на вашем JPanel вы увидите 5890,3200, если бы это была видимая часть, на которой была нажата мышь.Если вам нужно перевести координаты экрана, вы можете использовать JViewport , чтобы найти координаты вида, которые в настоящее время видны в окне просмотра, через JViewport.getViewRect () ,Вы получаете видовой экран из JScrollPane через JScrollPane.getViewport () .

...