Was ist die Klasse? Evtl. im Konstruktor
setFocussable(true);
aufrufen und am Anfang einmal reinklicken (oder programmatisch schauen, dass man das mit requestFocusInWindow oder so hinkriegt)
Damit der KeyListener reagiert, muss die Komponente zu dem Zeitpunkt auch den Fokus besitzen. Eventuell sind da noch andere Komponenten auf dem GUI die den Fokus für sich beanspruchen?
Der Listener geht wenn das Programm laeuft, JFrame ist nur ein Beispiel, ist somit ein lokaler KeyListener, global geht es nicht bei Java so viel ich weiss, nur mit Umbau von C++ Programm etc. wurde hier mal besprochen im Forum
Nein, der KeyListener geht nur wenn die Komponente der der KeyListener zugewiesen wurde den Fokus hat, in deinem Beispiel also der JFrame.
Mit Key Bindings kann man das besser steuern.
Nein, der KeyListener geht nur wenn die Komponente der der KeyListener zugewiesen wurde den Fokus hat, in deinem Beispiel also der JFrame.
Mit Key Bindings kann man das besser steuern.
Man muss z.B. nicht darauf achten, dass eine bestimmte Komponente den Fokus hat. Man kann in einem aus mehreren fokussierbaren Komponenten bestehenden GUI Tastenkürzel verwenden, die generell reagieren, unabhängig wo der Fokus gerade liegt. Wie z.B in Office Dokumenten STRG+O, STRG+S usw.
Man muss z.B. nicht darauf achten, dass eine bestimmte Komponente den Fokus hat. Man kann in einem aus mehreren fokussierbaren Komponenten bestehenden GUI Tastenkürzel verwenden, die generell reagieren, unabhängig wo der Fokus gerade liegt. Wie z.B in Office Dokumenten STRG+O, STRG+S usw.
Und wenn der Fokus das Java-Programm verlaesst z.B. auf's Notpad, Firefox, Opera, was dann, ist es dann aus mit KeyListener, oder wird es auch dann aufgezeichnet?:bahnhof::bahnhof:
Key Bindings? Kenn ich noch gar nicht...
Bisher gestalten sich meine GUIs so, dass ich jeder Komponente einen globalen KeyListener hinzufüge (eigentlich alles andere als sauber). Dieser KeyListener speichert diverse Keycodes in einem Boolean-Array und stellt nach aussen hin Methoden zur Verfügung, mit denen Tasten auf steigende (pressed) und fallende (released) Flanken sowie auf halten (down) abgefragt werden können. Diese Abfragen können während EDT (z.B. per FocusListener) oder in anderen Threads erfolgen.
Key Bindings? Kenn ich noch gar nicht...
Bisher gestalten sich meine GUIs so, dass ich jeder Komponente einen globalen KeyListener hinzufüge (eigentlich alles andere als sauber). Dieser KeyListener speichert diverse Keycodes in einem Boolean-Array und stellt nach aussen hin Methoden zur Verfügung, mit denen Tasten auf steigende (pressed) und fallende (released) Flanken sowie auf halten (down) abgefragt werden können. Diese Abfragen können während EDT (z.B. per FocusListener) oder in anderen Threads erfolgen.
..einen globalen KeyListener ? Ein globaler KeyListener ist doch wenn z.B. dein Java-Programm aktiviert hast und dann das Fenster wechselst in ein anderes Programm wie Notepad, Opera etc. und was du dort eintippst, wird dann quasie in deinem Java-Programm aufgezeichnet, das geht bei dir? Kannst uns deinen Quelltext bitte posten wie es genau aussieht?:bahnhof: Oder ist es top secret? :bahnhof:
Und wenn der Fokus das Java-Programm verlaesst z.B. auf's Notpad, Firefox, Opera, was dann, ist es dann aus mit KeyListener, oder wird es auch dann aufgezeichnet?:bahnhof::bahnhof:
Sorry, ist bei mir genau so. Bei mir ist' lediglich egal, welche Java-Component den Fokus hat - sagen wir halt anwendungsglobal. Ist in anderen Programmen (MS-Office, Notepad usw.) ja nicht anders.