Le keylistener
labypro
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
KX Messages postés 16761 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je suis en Terminale S en option ISN (Informatique et Sciences du Numérique).
Je fais de la programmation en java et j'aimerais juste savoir ce qu'est un keylistener ?
Merci d'avance.
Je suis en Terminale S en option ISN (Informatique et Sciences du Numérique).
Je fais de la programmation en java et j'aimerais juste savoir ce qu'est un keylistener ?
Merci d'avance.
1 réponse
Bonjour,
Lorsque tu as une interface graphique, tu peux l'utiliser avec la souris ou le clavier, ce qui provoque un "événement". Java va alors chercher qui est concerné par cet événement (par exemple, sur quel bouton on a cliqué) et lui demander de le gérer.
Un KeyListener permet de gérer un événement de type clavier, si on ajout un KeyListener à un composant graphique et qu'un événement clavier concerne ce composant, Java va appeler la méthode concernée en lui passant en paramètre l’événement en question.
Exemple simple : j'ai une fenêtre (vide, qui ne fait rien), quand j'appuie sur la touche Echap je veux qu'elle se ferme.
Remarque : pour fermer la fenêtre j'ai générer moi même un nouvel événement "WINDOW_CLOSING" qui est déjà géré par Java pour fermer proprement la fenêtre.
Sur le même principe, on pourrait ajouter un WindowListener pour afficher l'arrivée de cet événement.
Le tutoriel officiel :
Lorsque tu as une interface graphique, tu peux l'utiliser avec la souris ou le clavier, ce qui provoque un "événement". Java va alors chercher qui est concerné par cet événement (par exemple, sur quel bouton on a cliqué) et lui demander de le gérer.
Un KeyListener permet de gérer un événement de type clavier, si on ajout un KeyListener à un composant graphique et qu'un événement clavier concerne ce composant, Java va appeler la méthode concernée en lui passant en paramètre l’événement en question.
Exemple simple : j'ai une fenêtre (vide, qui ne fait rien), quand j'appuie sur la touche Echap je veux qu'elle se ferme.
import java.awt.event.*; import javax.swing.JFrame; public class Test { public static void main(String[] args) { JFrame frame = new JFrame("Test"); frame.setSize(200, 200); frame.setLocationRelativeTo(null); frame.setVisible(true); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.addKeyListener(new KeyListener() { @Override public void keyReleased(KeyEvent e) { System.out.println(e); if (e.getKeyCode() == KeyEvent.VK_ESCAPE) { System.out.println("Echap : STOP"); frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING)); } } public void keyPressed(KeyEvent e) {} public void keyTyped(KeyEvent e) {} }); } }
Remarque : pour fermer la fenêtre j'ai générer moi même un nouvel événement "WINDOW_CLOSING" qui est déjà géré par Java pour fermer proprement la fenêtre.
Sur le même principe, on pourrait ajouter un WindowListener pour afficher l'arrivée de cet événement.
frame.addWindowListener(new WindowListener() { @Override public void windowClosing(WindowEvent e) { System.out.println(e); } public void windowActivated(WindowEvent e) {} public void windowOpened(WindowEvent e) {} public void windowIconified(WindowEvent e) {} public void windowDeiconified(WindowEvent e) {} public void windowDeactivated(WindowEvent e) {} public void windowClosed(WindowEvent e) {} });
Le tutoriel officiel :
- Introduction to Event Listeners
- How to Write a Key ListenerLa confiance n'exclut pas le contrôle