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.


Anmelden zum Antworten