Pergunta

Eu quero começar mouse localização em relação ao quadro.

MouseInfo me dar a localização absoluta.

Como obter poisition em relação ao quadro?tahnks.

Foi útil?

Solução

Obtenha a localização absoluta do quadro com getlocationscreen () e, em seguida, calcular a distância relativa.

Outras dicas

Primeiro, a pé até a árvore a partir do seu escopo atual para o topo (que será o quadro):

Container container = this.getParent();
Container previous = container;
while (container != null)
{
    previous = container;
    container = container.getParent();
}

anterior é o topo do recipiente

if (previous instanceof JFrame)
{
    Point p = ((JFrame)previous).getMousePosition();
    System.out.println(p); // or do what you need to with p
}

Para calcular a localização do mouse em relação ao quadro, você deve subtrair o localização absoluta do mouse do localização do quadro, anulando o estranho pontos a partir do canto superior esquerdo da moldura para o canto superior esquerdo da tela.

Para obter a localização do mouse em relação ao quadro como um Ponto:

public Point getLocationRelativeTo() {
    int x = frame.getX() - MouseInfo.getPointerInfo().getLocation().x;
    int y = frame.getY() - MouseInfo.getPointerInfo().getLocation().y;
    return new Point(x, y);
}

Para obter o x como um int:

public int getXRelativeTo() {
    int x = frame.getX() - MouseInfo.getPointerInfo().getLocation().x;
    return x;
}

Para obter o y como um int:

public int getXRelativeTo() {
    int y = frame.getY() - MouseInfo.getPointerInfo().getLocation().y;
    return y;
}

Espero que o ajudou.:)

Para mais informações, visite http://docs.oracle.com/javase/7/docs/api/java/awt/MouseInfo.html

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