Domanda

Ho bisogno di prendere la posizione del mouse in float o doppia, come posso fare? Nel listener del mouse, prendo il punto come questo,

e.getPoint();

ma xey valori di Point oggetto sono numeri interi, devo posizione flottante o doppia. Qualsiasi aiuto sarà apprezzato.

Modifica Ho bisogno esatta risoluzione.

È stato utile?

Soluzione

getPoint() vi dà i numeri interi perché questa è la precisione nel quale sono specificate le coordinate. Vedere http://java.sun.com /j2se/1.4.2/docs/api/java/awt/Point.html .

Perché avete bisogno di valori in virgola mobile?

Modifica : in risposta al tuo commento, è necessario mappare le posizioni assolute ai pixel sullo schermo, utilizzando una funzione come il pavimento (rotondo sempre verso il basso) o rotondo (round Int più vicino). Il sistema non ha alcuna nozione di 0,2 pixel o qualcosa di simile. Si sia possibile troncare continuamente la parte decimale dei calcoli, o mantenere le coordinate esatte in ogni momento e mapparli in pixel, se necessario.

Altri suggerimenti

Da int si dovrebbe essere in grado di lanciare a double o float senza problemi:

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

Ci sono tuttavia metodi che già fanno che:

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

Mi sto perdendo qualcosa qui?

Si prega di notare, che la precisione non sarà più alto - il mouse può scattare solo di pixel pieni, quindi di solito intero è bene. Ma se avete bisogno di calcolare sulla base di questi valori, le rappresentazioni in virgola mobile potrebbero essere utili.

Non è possibile ottenere un punto più precisa poi getPoint(), wich restituisce un oggetto Point che contiene solo due numeri interi. Cosa vorrebbe ottenere con questo?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top