Chciałbym zasymulować naturalny ruch myszy w Javie (przechodząc od tego miejsca piksel po pikselu). Aby to zrobić, muszę znać współrzędne początkowe.
Znalazłem metodę event.getX () i event.getY (), ale potrzebuję zdarzenia ...
Jak mogę poznać pozycje bez robienia czegokolwiek (lub czegoś niewidocznego)?
Dziękuję Ci
getPointerInfo().getLocation()
zwraca pozycję względem ekranu. Jeśli chcesz, aby pozycja w stosunku do twojego komponentu (jak podana przez MouseListeners), możeszyourComponent.getLocationOnScreen()
od niej odjąć .Container.getMousePosition()
może czasami powrócić,null
jeśli mysz porusza się zbyt szybko, dzięki temu można uniknąć problemu.SwingUtilities.convertPointFromScreen(MouseInfo.getPointerInfo().getLocation(), component)
MouseInfo.getPointerInfo()
może zwrócić wartość null, gdy nie ma myszy lub w niektórych konfiguracjach multimon.SwingUtilities.convertPointFromScreen(..)
konwertuje pierwszy argument w miejscu i nic nie zwraca, więc musi być napisany nieco inaczej w stosunku do komentarza @AndreiVajnaII, abyśmy mogli przechwycićPoint
obiekt.źródło
W SWT nie musisz być w słuchaczu, aby dostać się do lokalizacji myszy. Obiekt Display ma metodę
getCursorLocation()
.W waniliowym SWT / JFace zadzwoń
Display.getCurrent().getCursorLocation()
.W aplikacji RCP zadzwoń
PlatformUI.getWorkbench().getDisplay().getCursorLocation()
.W przypadku aplikacji SWT lepiej jest używać
getCursorLocation()
tychMouseInfo.getPointerInfo()
, o których wspominali inni, ponieważ ta ostatnia jest zaimplementowana w zestawie narzędzi AWT, który SWT miał zastąpić.źródło
źródło
źródło
Spróbuj spojrzeć na klasę java.awt.Robot. Umożliwia programowe poruszanie myszą.
źródło
Jeśli używasz Swing jako warstwy interfejsu użytkownika, możesz użyć do tego detektora ruchu myszy .
źródło
Robię coś takiego, aby uzyskać współrzędne myszy za pomocą robota, używam tych współrzędnych dalej w kilku grach, które tworzę:
źródło
Jeśli używasz SWT, możesz chcieć przyjrzeć się dodaniu MouseMoveListener, jak wyjaśniono tutaj .
źródło
W moim scenariuszu miałem otworzyć okno dialogowe w pozycji myszy na podstawie operacji GUI wykonanej za pomocą myszy. Poniższy kod zadziałał dla mnie:
źródło