Pergunta

Eu preciso levar a posição do mouse clique em float ou double, como posso fazer isso? Em ouvinte rato, eu tomo o ponto como este,

e.getPoint();
x de

Mas o ponto de objetos e valores y são inteiros, eu preciso de posição em float ou double. Qualquer ajuda será apreciada.

Editar Eu preciso exato resolução.

Foi útil?

Solução

getPoint() lhe dá inteiro valores, porque essa é a precisão em que as coordenadas são especificadas. Consulte http://java.sun.com /j2se/1.4.2/docs/api/java/awt/Point.html .

Por que você precisa de valores de ponto flutuante?

Editar : em resposta ao seu comentário, você precisa mapear suas posições absolutas de tela pixels, usando uma função como andar (sempre para baixo e volta) ou redondo (round para int mais próximo). O sistema não tem noção de 0,2 pixels ou qualquer coisa assim. Você pode continuamente truncar a parte decimal de seus cálculos, ou manter as coordenadas exatas em todos os momentos e mapeá-los para pixels, conforme necessário.

Outras dicas

De int você deve ser capaz de elenco para double ou float sem problemas:

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

No entanto, existem métodos que já fazem isso:

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

Estou faltando alguma coisa aqui?

Por favor, note que a precisão não será maior - o rato só pode pular para pixels completos, portanto, geralmente inteiro está bem. Mas se você precisa calcular com base nesses valores, as representações de ponto flutuante pode ser útil.

Você não pode obter um ponto mais preciso, em seguida, getPoint(), wich retorna um objeto Point que apenas detém dois inteiros. O que gostaria de conseguir com isso?

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top