Probleme de KeyListener

Paco -  
js95 Messages postés 804 Statut Membre -
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

js95 Messages postés 804 Statut Membre 354
 
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.
0
js95 Messages postés 804 Statut Membre 354
 
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
0
js95 Messages postés 804 Statut Membre 354
 
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));  
0
js95 Messages postés 804 Statut Membre 354
 
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")
0