zunehmend Offtopic, aber einmal noch
[QUOTE=TMII]Deine Anwendung wird nicht auf dem UI Thread laufen, je nach OS oder Eingabegerät wirst du die Eingaben aber über den UI oder anderweitige Threads in dein Programm einschleusen müssen.
[/quote]
verstehe ich nicht ganz, der Kern jeder Anwendung, welche über verschiede Arten zu steuern ist,
sollte unabhängig etwa vom AWT-Thread einer GUI laufen,
was die Anwendung selber an UI-Threads und sonstiger zentraler Steuerung hat wird natürlich genutzt,
von jedem Input gleich,
wenn ein bestimmtes Event-Format die Anwendung tief durchdringt, dann ist sie nicht zu umgehen, stimme zu,
aber so ein System führt man eher auch schon für nur eine Eingabe ein, nicht in Hinblick auf mehrere 
hat Swing ja auch, ok Tastatur + Maus, evtl. noch interne Events, aber nur mit Tastatur würde sicher nicht anderer Aufbau gewählt
Du sagst man könnte einfach entsprechenden Methoden aufrufen, was passiert denn wenn man die Taste „W“ drückt? Wird dann die Methode „pressedW()“ aufgerufen? Oder „pressedKey( ‚W‘ )“? Oder abstrahierter die Methode „moveForward()“?
diese Frage stellt sich beim Netzwerk-Input mit UDP-Päckchen genauso,
sobald ein Programm die Komplexität von ganzen GUIs erreicht mit Focus auf Komponenten, Berücksichtung Feststelltaste, Edit-Modus usw.,
da ist es natürlich ganz was anderes als einfache erste Anwendungen mit globalen Bedeutungen jeder Aktion, höchstens noch Position der Maus dazuzunehmen,
gegen OOP sehe so eine mächtige Verarbeitung auch nicht gestellt,
ich bezog mich vorher vor allem auf den Punkt der unterschiedlichen Eingabemedien und die genannte Umwandlung auf UDP,
die ich als Netzwerk-Anschluss verstand, über welchen Umweg es auch für andere Eingaben in das Programm mit interner Verarbeitung X rein ging,
da hätte jeder andere Input auch direkt an die interne Verarbeitung X anknüpfen können,
wenn UDP oder was auch immer im Inneren der Anwendung vorliegt so wie Event im AWT-Thread, dann natürlich zwingend