Como obter o ponteiro do mouse localização em relação ao quadro
-
12-12-2019 - |
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.
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