имея двойное значение для очков - PullRequest
2 голосов
/ 25 ноября 2010

Привет У меня есть пользовательский интерфейс с панелью, и вы можете использовать свою мышь, чтобы наложить на нее несколько точек, и это ее код:

    double x = evt.getX();
    double y = evt.getY() + 20;
    Graphics g = getGraphics();
    g.setColor(Color.black);
    g.fillOval((int) x, (int) y, 10, 10);
    Point point = new Point(x, y);
    pointList.add(point);

как вы видите, мое поле "x" и поле "y" имеют двойной тип, но когда я печатаю эти точки, их значение будет int, как я могу сохранить их и использовать в своих функциях с двойным типом. когда я их печатаю:

[120.0 ,134.0]
[345.0,785.0]

Ответы [ 3 ]

8 голосов
/ 25 ноября 2010

Попробуйте java.awt.geom.Point2D.Double

4 голосов
/ 25 ноября 2010

Позиции на панели всегда будут целыми числами, потому что вот что возвращают getX и getY.Вы не можете нажать на полпикселя.;)

То, что вы сохранили , на самом деле является двойным.Вот почему он говорит «120,0», а не просто «120».Если вы храните целое число в типе с плавающей запятой (например, в двойном), то оно сохраняется как эквивалент этого целого числа с плавающей запятой (то же самое, что поставить ".0" в конце).Поскольку значение, которое вы сохраняете в нем, всегда будет целым числом, вы всегда будете заканчиваться целым числом в ваших двойниках (если вы не выполните какую-либо другую математическую обработку для них, которая заставит их измениться)

0 голосов
/ 25 ноября 2010

ваши двойные значения приводятся обратно к целым числам.кроме написания вашего собственного метода toString (возможно, путем расширения Point), вы ничего не можете с этим поделать.

...