salut tout le monde,
j'ai un JPanel qui contient 17 JtextField (c'est pour un logiciel de comptablité) et le contenu de quelques JTextField dépends du contenu des autres, c'est à dire si je fais un changement dans un JtextField, le contenu d'autres va être changer, pour cette raison j'ai utilisé la classe DocumentListener, voici à peu prés le squette de mon code:
si je fais un chagement dans un de mes JTextField il m'affiche l'exception suivante:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76 public class Location extends JPanel { //declaration des variables public Location() { //ajout des composant à mon JPanel calculer(); AjouterEvt(Location.this); } public void AjouterEvt(JPanel p) { for (Component c : p.getComponents()) { if (c instanceof JPanel) { AjouterEvt((JPanel) c); // System.out.println(((JPanel) c).getWidth()); } else { if (c instanceof JTextField) { ((JTextField) c).getDocument().addDocumentListener( new Ecouteurs()); } } } } public void calculer() { textField_2.setText(""); double duree = contenu(textField) * contenu(textField_1); System.out.println(duree); textField_2.setText("" + duree); tfTva.setText("" + contenu(tfTotal2) * 0.17); tf75.setText("" + contenu(tfTrav) * 3000); tfTimbres.setText("" + contenu(tfPages) * 2 * 20); double total1 = contenu(tfEnreg) + contenu(tfTimbres) + contenu(tfConserv) + contenu(tfTva); tfTotal1.setText("" + total1); double total2 = contenu(tfNotaire) + contenu(tf22) + contenu(tf78) + contenu(tf79) + contenu(tf75); tfTotal2.setText("" + total2); double total = total1 + total2; tfTotal.setText("" + total); } public double contenu(JTextField t) { double contenu; if (t.getText().equals("")) contenu = 0; else contenu = Double.parseDouble(t.getText()); return contenu; } class Ecouteurs implements DocumentListener { @Override public void changedUpdate(DocumentEvent e) { calculer(); } @Override public void insertUpdate(DocumentEvent e) { // TODO Auto-generated method stub calculer(); } @Override public void removeUpdate(DocumentEvent e) { // TODO Auto-generated method stub calculer(); } } }
Merci d'avance
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempt to mutate in notification
Partager