Le keylistener
Fermé
labypro
Messages postés
2
Date d'inscription
mercredi 6 avril 2016
Statut
Membre
Dernière intervention
6 avril 2016
-
6 avril 2016 à 18:25
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 6 avril 2016 à 20:22
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 6 avril 2016 à 20:22
1 réponse
KX
Messages postés
16753
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
25 novembre 2024
3 019
Modifié par KX le 6/04/2016 à 20:24
Modifié par KX le 6/04/2016 à 20:24
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