Comment paramétrer le keypressed pour ne pas avoir des champs en dur?
Je voudrais enlever parent.champaffichage par un pointeur pour rendre cette fonction générique.
J'ai 4 champs "JTEXTFIELD" à contrôler.
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 Avant_saisie = parent.champAffichage.getText(); public class Moteur_keypressedMS implements KeyListener{ CalculatriceMS parent; // une référence à la Calculatrice String Avant_saisie; boolean fnum = false; Moteur_keypressedMS(CalculatriceMS parent) { this.parent = parent; } public void keyPressed(KeyEvent event) { System.out.println("Code touche pressée : " + event.getKeyCode() + " - caractère touche pressée : " + event.getKeyChar()); // jTextField.getText() contient le texte présent dans le JTextField avant l'appui sur la touche // e.getKeyChar() est le caractère correspondant à la touche pressée //JOptionPane.showConfirmDialog(null, "quelquechose c produit keyPressed","ici en haut", JOptionPane.PLAIN_MESSAGE); char ch = event.getKeyChar(); if (ch == '0' ||ch == '1'||ch == '2' ||ch == '3' ||ch == '4' ||ch == '5' ||ch == '6' ||ch == '7' ||ch == '8' ||ch == '9' ) {fnum = true;} else { fnum = false; Avant_saisie = parent.champAffichage.getText(); } pause(); } public void keyReleased(KeyEvent event) { System.out.println("Code touche relâchée : " + event.getKeyCode() + " - caractère touche relâchée : " + event.getKeyChar()); //JOptionPane.showConfirmDialog(null, "quelquechose c produit keyReleased","ici en haut", JOptionPane.PLAIN_MESSAGE); if (!fnum) {parent.champAffichage.setText(Avant_saisie);} pause(); } public void keyTyped(KeyEvent event) { System.out.println("Code touche tapée : " + event.getKeyCode() + " - caractère touche tapée : " + event.getKeyChar()); //JOptionPane.showConfirmDialog(null, "quelquechose c produit keyTyped","ici en haut", JOptionPane.PLAIN_MESSAGE); if (!fnum) { parent.champAffichage.setText(Avant_saisie);} pause(); } private void pause(){ try { Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } } }
Partager