IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 Java Discussion :

ActionListener sur touche Enter du clavier ?


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Par défaut ActionListener sur touche Enter du clavier ?
    Hello à tous !

    Je cherche à exécuter différentes actions lorsque la touche "Enter" du clavier est tapée. Quelles sont les mots réservés à cela ?

    Merci d'avance,

  2. #2
    Membre expérimenté Avatar de Mamypirate
    Homme Profil pro
    Samouraï
    Inscrit en
    Mai 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Samouraï
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2011
    Messages : 108
    Par défaut
    Tu trouveras un exemple d'implémentation d'un KeyListener ici.
    Concernant la touche Enter en particulier, une fois l'événement e récupéré, il suffira de faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    int key = e.getKeyCode();
            if (key == KeyEvent.VK_ENTER) {
                //mon traitement
            }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Par défaut
    Merci pour ton aide ! Etant donné que je n'y arrive pas, je vais aller un plus loin dans l'explication de ce que je cherche à faire :
    Voici le code (je mets que les bouts importants donc oubliez les appels de méthodes non affichées etc...)

    J'ai un ActionListener lié à un bouton d'un interface graphique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    public class Interface extends JFrame{	
    	private static final long serialVersionUID = 1L;
    	private EcouteChampTxt ecouteChampTxt;
    	public static JButton bouton, bouton2; 
    	static Article a;
    		
    	public Interface (){ 
    		JPanel panneauBouton = new JPanel();
    		bouton = new JButton ("Recherche du mot clé");
    		bouton.setSize(10, 10);
    		panneauBouton.add("South", bouton);
    		ecouteChampTxt = new EcouteChampTxt(a);
    		bouton.addActionListener(ecouteChampTxt);
    Action de EcouteChampTxt: appelée par le clic sur le bouton "bouton" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    package concordancesPack;
    import java.awt.event.*;
     
    public class EcouteChampTxt implements ActionListener {	
    	public String motCleEntre;
    	private static Article article;
     
    	public EcouteChampTxt(Article art){
    		article = art;
    	}
     
    public void actionPerformed(ActionEvent ev){	
    	motCleEntre = Interface.champMotCle.getText();	
    		resultat(motCleEntre);
    	}
    }
    Maintenant je voudrais exécuter le même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     public void actionPerformed(ActionEvent ev){	
    	motCleEntre = Interface.champMotCle.getText();	
    	resultat(motCleEntre);}
    mais quand on appuie sur Enter.

  4. #4
    Membre expérimenté Avatar de Mamypirate
    Homme Profil pro
    Samouraï
    Inscrit en
    Mai 2011
    Messages
    108
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Samouraï
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2011
    Messages : 108
    Par défaut
    Je pense qu'il faut ajouter un KeyListener.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bouton.addKeyListener(ecouteChampTxt);
    Puis, implémenter l'interface KeyListener

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    public class EcouteChampTxt implements ActionListener, KeyListener {	
    		public String motCleEntre;
    		private static Article article;
     
    		public EcouteChampTxt(Article art){
    			article = art;
    		}
     
    		private void doThis() {
    			motCleEntre = Interface.champMotCle.getText();	
    			resultat(motCleEntre);
    		}
     
    		public void actionPerformed(ActionEvent ev){	
    			doThis();
    		}
     
    		public void keyPressed(KeyEvent e) {}
     
    		public void keyReleased(KeyEvent e) {}
     
    		public void keyTyped(KeyEvent e) {
    			if (key == KeyEvent.VK_ENTER) {
    				doThis();
    			}
    		}
    	}
    Après si tu veux que l'action se déclenche avec la touche "Entrer" sans pour autant que le focus soit sur le bouton, il faut ajouter le listener à ta fenêtre et non à ton bouton. Mais le principe reste le même.

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Par défaut
    Ok, je vois, merci.
    Encore une chose, quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public void keyTyped(KeyEvent e) {
    if (key == KeyEvent.VK_ENTER) {
    				doThis();
    			}
    		}

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Par défaut
    Ok, je vois, merci.
    Encore une chose, quand tu fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public void keyTyped(KeyEvent e) {
          if (key == KeyEvent.VK_ENTER) {
    		doThis();
    	}
    }
    C'est quoi key ? Comment je récupère cette variable qui est ce que j'ai tapé... ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2011
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2011
    Messages : 10
    Par défaut
    Je comprends bien que c'est le

    int key = e.getKeyCode();

    mais je ne vois pas quoi mettre à la place du "e"...

Discussions similaires

  1. Réponses: 7
    Dernier message: 18/03/2015, 23h07
  2. [clavier]Action sur touche Entrée
    Par michaeljeru dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 07/03/2007, 11h55
  3. Gestion de la touche Enter sur les webforms
    Par ag007 dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 15/11/2006, 15h46
  4. Evenement "Appuyer sur la touche Enter"
    Par Benjy dans le forum C++Builder
    Réponses: 4
    Dernier message: 29/09/2005, 11h14
  5. [Listener] Réagir sur la touche ENTER
    Par Sarrus dans le forum Agents de placement/Fenêtres
    Réponses: 14
    Dernier message: 07/09/2005, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo