Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Hallo,
ich wollte mal fragen, ob jemand weis, wie man einen KeyListener nutzt, ohne dass man den Listener einem JFrame zuweisen muss (jframe.addKeyListener(this)).
Hallo,
ich wollte mal fragen, ob jemand weis, wie man einen KeyListener nutzt, ohne dass man den Listener einem JFrame zuweisen muss (jframe.addKeyListener(this)).
Ich glaube du sucht nach der JNativeHook jar. https://github.com/kwhat/jnativehook. Du kannst die ja ein paar Videos ansehen wie das genau geht. Du kannst völlig ohne Frame irgendwelche Sachen machen. Auch wenn du ein Frame hast aber gerade nicht drinn bist werden die NatvieKeyEvents "gesehen".
Achja warum beantworten alle seine Frage mit einer anderen Frage. Er möchte eine Antwort und nicht eine sinnlose Gegenfrage.
Weil das Problem, erstens in Java nicht geht und zweitens einen besseren "javaischen" Weg zum Ziel gibt. Darum sollte man immer eine ganze Frage stellen und die Intention hinterlegen, damit geholfen werden kann. Solche Fragen ergeben eben für den "normalen" Java-Programmierer keinen Sinn.
"Ohne JFrame" ist einfach, ruf einfach die KeyListener-Methoden auf.
Java:
new MyKeyListener().keyTyped(new KeyEvent(...));
Ich glaube, es gibt hier ein Verständnisproblem. Ein KeyListener ist kein Apparat, der die Tastatur überwacht. Ein KeyListener ist eine Klasse mit einigen Methoden, mehr nicht. Die Events kommen von irgendwo anders.
Ein JFrame (oder Textfeld oder etwas anderes) feuert einen KeyPressed-Event ab (und einige andere, das ist hier Nebensache), sobald eine Taste gedrückt wird. Jeder dem Frame zugewiesene KeyListener wird dann der Reihenfolge nach aufgerufen.
Wenn dein Fenster keinen Focus hat, dann feuert es auch keine Events ab und dein Listener wird nicht aufgerufen.
Die Frage ist also, wodurch soll dein KeyListener aufgerufen werden?