Как получить положение мыши с плавающей или двойной с точным разрешением? - PullRequest
0 голосов
/ 10 марта 2010

Мне нужно занять позицию щелчка мыши в плавающей или двойной, как я могу это сделать? В слушателе мыши, я беру точку, как это,

e.getPoint();

но значения x и y точечного объекта целые, мне нужно положение с плавающей или двойной. Любая помощь будет оценена.

Редактировать Мне нужно точное разрешение.

Ответы [ 3 ]

2 голосов
/ 10 марта 2010

getPoint() дает целочисленные значения, потому что это точность, с которой указываются координаты. Смотри http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Point.html.

Зачем вам нужны значения с плавающей точкой?

Редактировать : в ответ на ваш комментарий вам необходимо отобразить ваши абсолютные позиции на экранных пикселях, используя функцию наподобие floor (всегда округляя вниз) или round (округляя к ближайшему int). Система не имеет понятия 0,2 пикселя или чего-то подобного. Вы можете либо постоянно обрезать десятичную часть своих расчетов, либо постоянно поддерживать точные координаты и отображать их в пикселях по мере необходимости.

1 голос
/ 10 марта 2010

С int вы сможете без проблем разыграть double или float:

double x = e.getPoint().x;
double y = e.getPoint().y;

Однако существуют методы, которые уже делают это:

double x = e.getPoint().getX();
double y = e.getPoint().getY();

Я что-то здесь упускаю?

Обратите внимание, что точность не будет выше - мышь может привязываться только к полному пикселю, следовательно, обычно целое число в порядке. Но если вам нужно рассчитать на основе этих значений, представления с плавающей запятой могут быть полезны.

0 голосов
/ 10 марта 2010

Вы не можете получить более точную точку, чем getPoint(), которая возвращает объект Point, который содержит только два целых числа. Чего бы хотелось добиться с этим?

...