Определение положения мыши относительно панели

Я пытаюсь получить положение мыши на панели, как в верхнем левом углу панели = x/y 0,0.

То, что у меня есть в минуту, дает положение на весь экран, поэтому в зависимости от того, где панель (которая находится в кадре) находится на экране, координаты разные. Я думаю, вы могли бы добавить к координатам x/y, чтобы учесть это, но это кажется беспорядочным решением. Кто-нибудь может помочь?

Вот используемый мной mouseListener, добавленный на панель.

private class MouseListener extends MouseAdapter 
{
    public void mouseClicked(MouseEvent e) 
    {
        // Finds the location of the mouse
        PointerInfo a = MouseInfo.getPointerInfo();
        Point b = a.getLocation();

        // Gets the x -> and y co-ordinates
        int x = (int) b.getX();
        int y = (int) b.getY();
        System.out.println("Mouse x: " + x);
        System.out.println("Mouse y: " + y);

        // Determines which tile the click occured on
        int xTile = x/tileSize;
        int yTile = y/tileSize;

        System.out.println("X Tile: " + xTile);
        System.out.println("Y Tile: " + yTile);

    }
}

person DMCH    schedule 12.10.2012    source источник


Ответы (2)



Вы можете использовать MouseEvent.getX() и MouseEvent.getY(), чтобы получить относительные координаты X и Y соответственно.

int relativeX = e.getX();
int relativeY = e.getY();
...
person Reimeus    schedule 12.10.2012