# Global KeyListener/MouseListener



## richard the 3rd (15. Nov 2004)

Mit C und C++ kann man relativ einfach Windows-Messages oder Linux-Signals abfangen, und darauf reagieren, egal ob meine applikation ein aktives Fenster hat oder nicht. Dabei spielt es auch keine Rolle, wo sich die Maus zur Zeit befindet.

Kann man das Mit Java auch, addMouseListener auf ein Systemobjekt wie z. Bsp. Desktop? Muss ich dazu wirklich den Umweg ueber Jni gehen und das mit C ausprogramieren?


----------



## SebiB90 (15. Nov 2004)

du kannst ein robot object erzeugen und darauf ne listener anwenden dann wird er auf den ganzen bildschirm angewendet


----------



## Roar (15. Nov 2004)

du kannst an ein Robot keinen listener dranhängen.
ja um auf das system zuzugreifen musst du üder jni gehen und das in c oder c++ programmieren


----------



## SebiB90 (15. Nov 2004)

ich dachte das geht
naja dann halt nicht


----------



## Guest (23. Nov 2004)

Hallo,

es gibt zwei Möglichkeiten: AWT-EventListener anmelden oder aber radikal EventQueue überschreiben und mit push() ersetzen. Letzteres ist absolut sicher, allerdings kann es Schwierigkeiten mit neu zu startenden modalen Dialogen geben, weil die wiederum die EventQueue pushen.
Die Original-Queue bekommst Du übrigens mit Toolkit.getDefaultToolkit().getSystemEventQueue().

Ach ja, es gibt noch eine "Zwitterlösung": Du kannst ein Runnable mit SwingUtilities.invokeLater(r) in die EventQueue
einschmuggeln, welches das Dispatchen selbst übernimmt (ableiten von EventQueue). Dort hast Du dann auch Kontrolle über absolut jedes Event, ohne die EventQueue auszutauschen. 

Gruß,

Karl


----------

