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:

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();
		}
	}
 
}
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
 
Exception in thread "AWT-EventQueue-0" java.lang.IllegalStateException: Attempt to mutate in notification
Merci d'avance