Fragwürdig hierbei ist für mich:
Wieso springt das Programm nur in run() wenn eine Richtung vorbelegt ist?
Sobald ich dir Richtung wechsle, stoppt das Programm (das Viereck). Wieso?
Und durch das Aufrufen duchr t.run() innerhalb des Keylisteners rührt sich auch nichts.