我需要在浮点或双精度中获取鼠标单击位置,我该怎么做?在鼠标侦听器中,我采取这样的观点,
e.getPoint();
但是 Point 对象的 x 和 y 值是整数,我需要浮点数或双精度值。任何帮助将不胜感激。
编辑 我需要精确的分辨率。
我需要在浮点或双精度中获取鼠标单击位置,我该怎么做?在鼠标侦听器中,我采取这样的观点,
e.getPoint();
但是 Point 对象的 x 和 y 值是整数,我需要浮点数或双精度值。任何帮助将不胜感激。
编辑 我需要精确的分辨率。
getPoint()
为您提供整数值,因为这是指定坐标的精度。请参阅http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Point.html。
为什么需要浮点值?
编辑:响应您的评论,您需要使用 floor(始终向下舍入)或 round(四舍五入到最接近的 int)之类的函数将绝对位置映射到屏幕像素。该系统没有 0.2 像素或类似的概念。您可以不断地截断计算的小数部分,或者始终保持精确的坐标并根据需要将它们映射到像素。
从int
你应该能够投到double
或float
没有任何问题:
double x = e.getPoint().x;
double y = e.getPoint().y;
然而,已经有一些方法可以做到这一点:
double x = e.getPoint().getX();
double y = e.getPoint().getY();
我在这里错过了什么吗?
请注意,精度不会更高 - 鼠标只能捕捉到完整像素,因此通常整数很好。但是如果您需要根据这些值进行计算,浮点表示可能会很有用。
那么你无法获得更精确的点getPoint()
,它返回一个仅包含两个整数的 Point 对象。想用这个实现什么?