Globaler KeyListener

Auch mit native-Code ist das nicht ganz trivial (und stellt auch ein Sicherheitsrisiko dar: Keylogger). Wenn ich mich recht entsinne, muss man die Win32-API-Funktion SetWindowsHookEx verwenden.
Für globale Hooks gilt allerdings:

The global hooks are a shared resource, and installing one affects all applications in the same desktop as the calling thread. All global hook functions must be in libraries. Global hooks should be restricted to special-purpose applications or to use as a development aid during application debugging.

Swing wird nicht global alle Tastenanschläge abfangen, sondern ebenfalls nur die Windows-Messages auswerten, die an den Prozess mit den GUI-Komponenten gesendet werden.

*** Edit ***

Kurze Recherche ergab folgendes: GitHub - kwhat/jnativehook: Global keyboard and mouse listeners for Java.
Sieht auf den ersten Blick so aus, als wenn es die komplizierte Arbeit kapselt und weitestgehende Plattformunabhängigkeit ermöglicht.