Question

J'essaie de créer un écouteur de clé en Java, mais quand j'essaie

KeyListener listener = new KeyListener();

Netbeans me dit que KeyListener est abstrait et qu’il ne peut pas être instancié. Je sais qu'il me manque un autre élément de cet auditeur principal, mais comme c'est la première fois que j'utilise un auditeur principal, je ne suis pas sûr de ce dont j'ai besoin. Pourquoi ça me dit ça?

Merci,

Tomek

Était-ce utile?

La solution

KeyListener est une interface - elle doit être implémentée par quelque chose. Donc, vous pourriez faire:

KeyListener listener = new SomeKeyListenerImplementation();

mais vous ne pouvez pas l'instancier directement. Vous pouvez utiliser une classe interne anonyme:

KeyListener listener = new KeyListener()
{
    public void keyPressed(KeyEvent e) { /* ... */ }

    public void keyReleased(KeyEvent e) { /* ... */ }

    public void keyTyped(KeyEvent e) { /* ... */ }
};

Cela dépend de ce que vous voulez faire, fondamentalement.

Autres conseils

KeyListener est une interface, vous devez donc écrire une classe qui l'implémente pour l'utiliser. Comme Jon l'a suggéré, vous pouvez créer une classe anonyme qui l'implémente en ligne, mais il existe une classe appelée KeyAdapter qui est une classe abstraite implémentant KeyListener, avec des méthodes vides pour chaque méthode d'interface. Si vous sous-classe KeyAdapter, il vous suffit alors de remplacer les méthodes qui vous intéressent, pas toutes les méthodes. Ainsi, si vous ne vous souciez que de keyPressed, vous pouvez le faire

KeyListener listener = new KeyAdapter()
{
    public void keyPressed(KeyEvent e) { /* ... */ }
};

Cela pourrait vous faire économiser un peu de travail.

KeyListener est une interface, ce qui signifie que vous pouvez écrire une classe sur cette base et implémenter ses fonctions. Peut-être que ce tutoriel vous aide.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top