Ich bin mir sicher, dass das möglich ist, aber all meine Suche ist leer.
In Java ist es möglich, sich für ein Mausbewegungsereignis außerhalb einer Java-App zu registrieren? Wenn sich der Mauszeiger irgendwo auf dem Bildschirm bewegt, erhalte ich einen Rückruf. Eine Annäherung ist möglich mit dem Aufruf von MouseInfo.getPointerInfo
, aber es muss einen besseren Weg geben.
Danke
Um den Anwendungsfall zu erklären: Es ist nur für ein Haustier-Projekt, aber im Grunde feuern Ereignisse, wenn die Maus den Rand des Bildschirms trifft. Ich dachte auch, dass verschiedene Ereignisse ausgelöst werden könnten, wenn Sie versuchen, den Bildschirmrand zu drücken . Und dafür dachte ich, ein Maus-Motion-Listener wäre besser geeignet.
java.awt.event.MouseMotionListener
gibt Ihnen nur Informationen über Mausbewegungen innerhalb Ihres Anwendungsfensters. Für Ereignisse außerhalb dieses Fensters gibt es keinen Weg um MouseInfo.getPointerInfo
. Sie könnten jedoch eine (möglicherweise singleton) Klasse schreiben, die die Zeigerinformationen in regelmäßigen Intervallen abfragt und MouseMotionListeners
hinzufügen lässt:
Beachten Sie jedoch, dass es einige bemerkenswerte Unterschiede zu Ihrem standardmäßigen MouseMotionListener gibt:
mouseMoved
-Ereignisse, niemals mouseDragged
-Ereignisse. Der Grund dafür ist, dass es keine Möglichkeit gibt, Informationen zu Klicks außerhalb des Hauptfensters zu erhalten. modifiers
jedes MouseEvent
immer 0. clickCount
, popupTrigger
, button
java.awt.Component
angeben, der als (falsche) Quelle der MouseEvent
s verwendet wird - null
Werte sind hier nicht erlaubt. Tags und Links java swing mouseevent