Probleme de KeyListener

Bonjour,
Je voudrais implémenter un clavier visuel. J'ai créé des boutons correspondant a ceux d'un clavier et je voudrais que si je clique sur un bouton par exemple sur 'A' il m'écrit 'A' sur un JtextField que j'ai placé plus bas.
Je voudrais savoir comment implémenter ce travail pour ces différents boutons. Disons un exemple suffirait sur un bouton après je pourrais continuer. Merci d'avance

1 réponse

  • Votes
  • Date
  • Date décroissante
  1. Dans la méthode constructeur de la fenêtre:
    JButton boutonA = new JButton("A"); 
    JTextField text = new JTextField(); 
    
    boutonA.addActionListener(new ActionA()); 
    
    

    Après ce constructeur, toujours dans la classe de ta fenêtre :
    class ActionA implements ActionListener { 
       public void actionPerformed(){ 
         text.setText(text.getText() + "A"); 
       } 
    } 
    


    La précision est le fruit de la réussite.
    1. Une remarque : je concatène la lettre A à ce qu'il y avait avant dans le JTextField pour ne pas effacer les précédentes saisies
    2. Pour la touche retour (effacer un caractère) <-, tu peux utiliser la méthode String.substring :
      String oldtext = new String(text.getText());  
      text.setText(oldtext.substring(0, oldtext.length-2));  
      
    3. Tu peux même améliorer encore ton programme en insérant le texte dans un JTextArea avec les mêmes méthodes setText() et getText() et en prenant en compte les sauts de ligne.
      De la même manière, lors d'un clic sur le bouton ENTREE le code est comme pour la lettre A sauf que la chaîne à ajouter n'est pas "A" mais
      System.getProperty("line.separator")
      pour permettre bien sûr la portabilité entre les OS. (éviter les "\n" "\r" et "\r\n")