KeyListener in nem Applet



  • Hi,
    Ich verzweifle langsam an einem Applet.
    Ich hab ein ganz normales Applet, dem ich einen KeyListener, einen MouseListener und einen MouseMotionListener hinzugefügt habe.
    Die 2 MouseListener funktionieren auch einwandfrei - nur der KeyListener funktioniert nicht. Die Methoden des KeyListeners werden bei mir nie aufgerufen. Hat da irgend jemand eine Idee??

    public class FilledCubeApplet extends Applet {
       // Die ganzen Variablendeklarationen   
    
       public void init() {
            // Ein paar Initialisierungen...        
    
            // Und hier soll jetzt einfach ein KeyListener dem Applet hinzugefügt  werden:
            this.addKeyListener(new KeyListener() {
                public void keyTyped(KeyEvent e) {
                   System.out.println("Im KeyListener");
                }
    
                public void keyPressed(KeyEvent e) {
                    System.out.println("Im KeyListener");
                }
    
                public void keyReleased(KeyEvent e) {
                   System.out.println("Im KeyListener");
                }
            });
    
            // weiterer Code...
    

    Danke, flo



  • Hat dein Applet den Tastatur-Fokus? Wenn nicht, dann kann es auch keine KeyEvents empfangen. Versuch mal vorher draufzuklicken oder ein einfaches requestFocus();



  • Wenn ich auf das Applet klicke und dann irgendwas auf der Tastatur eingeb reagiert er nicht. Selbst wenn in den Focus mit requestFocus() explizit anfordere geht er nie in eine der 3 KeyListener-Methoden. 😞



  • Hat sich erledigt! 🙄



  • Hat sich erledigt!

    Darf man denn auch erfahren, was denn nun schuld war / Was die Lösung gebracht hat? (Wäre auch sehr hilfreich, wenn jemand mal das selbe Problem hat)



  • Ich hatte in meinem Applet noch nen MouseListener und nen MouseMotionListener.
    In einer der Methoden des MouseListeners habe ich von dem MouseEvent Objekt
    die Methode consume() aufgerufen, die wohl alle anderen Events (auch Tastatureingaben) geschluckt hat.
    Ich hab den Aufruf von consume() entfernt und jetzt gehts 🙂


Anmelden zum Antworten