KeyListener bei mehreren Fenstern?
-
Hallo!
In meinem Programm habe ich 2 Fenster vom Typ JFrame und JWindow:
public class Hauptfenster extends JFrame { private Navigator navigator; ... Hauptfenster(){ ... navigator = new Navigator(this); this.addComponentListener(new ListenerFenster(navigator)); ... }; ... public class Navigator extends JWindow { ... Navigator(JFrame Hauptfenster){ super(Hauptfenster); } ... }
Im Navigator liegen einige Buttons, die ich nun per Tastatur ansprechen soll.
Problem: Keine Key Bindigs...Wenn ich im Navigator also sage:
this.addKeyListener(new MeinKeyListener(this));
Und in MeinKeyListener versuche auf die Tastatureingabe zu reagieren... tja, dann kommt nichts dabei raus.
Ich vermute, dass die Tastatureingabe im Hauptfenster abgefangen wird. Nur wie löse ich das Problem (-wie gesagt, ohne Key Bindings)?
-
kannst du die buttons in ein JComponent bzw. eine subclass legen? dann würds hier weitergehen
lg lolo
-
noobLolo schrieb:
kannst du die buttons in ein JComponent bzw. eine subclass legen? dann würds hier weitergehen
lg lolo
Die liegen in einer eigenen Klasse. Trotzdem kann ich keine Key Bindings verwenden.
-
€: Besser gesagt: Die Aufgabenstellung verbietet mir Key Bindings.
-
Habs gefunden.
Aber was anderes: Für einen JButton "b" ist ein ActionListener "ListenerButtonB" angelegt und beim Button "b" registriert.
Gibt es eine Möglichkeit per Hand einen ActionEvent für den Button "b" auszulösen?z.B. b.setEvent(new ActionEvent(...)); ?
-
das geht soweit ich weis nicht ohne weiteres aber du kannst die actionPerformed Methode des Listeners explizit aufrufen.