0

float または double でマウスのクリック位置を取得する必要があります。どうすればよいですか?マウス リスナーでは、次のようにポイントを取得します

e.getPoint();

Point オブジェクトの x と y の値は整数なので、float または double の位置が必要です。どんな助けでも大歓迎です。

編集 正確な解像度が必要です。

4

3 に答える 3

2

getPoint()座標が指定される精度であるため、整数値が得られます。http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Point.htmlを参照してください。

なぜ浮動小数点値が必要なのですか?

編集:コメントに応じて、floor(常に切り捨て)やround(最も近いintに丸める)などの関数を使用して、絶対位置を画面上のピクセルにマップする必要があります。システムには、0.2ピクセルなどの概念はありません。計算の小数部分を継続的に切り捨てるか、常に正確な座標を維持して、必要に応じてピクセルにマッピングすることができます。

于 2010-03-10T14:07:27.020 に答える
1

から、問題なくintキャストできるはずです。doublefloat

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

ただし、すでにそれを行う方法があります。

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

ここで何かが足りませんか?

精度は高くならないことに注意してください。マウスは完全なピクセルにしかスナップできないため、通常は整数で問題ありません。ただし、これらの値に基づいて計算する必要がある場合は、浮動小数点表現が役立つ場合があります。

于 2010-03-10T14:09:20.293 に答える
0

より正確なポイントを取得することはできません。これgetPoint()は、2 つの整数のみを保持する Point オブジェクトを返します。これで何を達成したいですか?

于 2010-03-10T14:18:10.410 に答える