Bonjour tout le monde,

Je débute en Java et en fait j'ai un petit souci sur une interface "bateau" censé représenter des compteurs . Le problème, c'est que chaque compteur est muni d'un bouton ayant le même nom que les autres ( "++" ), permettant à chaque pression d'augmenter le nombre d'objets concerné. Or quel que soit le bouton sur lequel j'appuie, c'est toujours le dernier type d'objet qui est incrémenté alors que les autres stagnent à 0. Voici le code pour être plus clair :

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
 
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
 
 
 
public class Compteur extends JPanel implements ActionListener{
 
	static int valeur = 0;
	static JLabel type;
	static JLabel nombre;
	static JButton increment;
 
	public Compteur(String titre){
 
		type = new JLabel(titre, JLabel.CENTER);
		nombre = new JLabel(Integer.toString(valeur), JLabel.CENTER);
		nombre.setFont(new Font("Monospaced", Font.BOLD , 60));
		increment = new JButton("++");
		increment.addActionListener(this);			
 
		setLayout(new GridBagLayout());
 
		ajout(type,0,0,2,1,0,0,GridBagConstraints.NONE,GridBagConstraints.CENTER);
		ajout(nombre,0,1,2,2,0,0,GridBagConstraints.BOTH,GridBagConstraints.CENTER);
		ajout(increment,0,3,2,1,0,0,GridBagConstraints.NONE,GridBagConstraints.CENTER);	
	}
 
 
	private void ajout(Component composant,
			int gridx, int gridy, int gridwidth, int gridheight,
			int weightx, int weighty, int fill, int anchor) {
			GridBagConstraints contrainte = new GridBagConstraints();
			contrainte.gridx = gridx;
			contrainte.gridy = gridy;
			contrainte.gridwidth = gridwidth;
			contrainte.gridheight = gridheight;
			contrainte.weightx = weightx;
			contrainte.weighty = weighty;
			contrainte.fill = fill;
			contrainte.anchor = anchor;
			add(composant, contrainte);
	}
 
	public void actionPerformed(ActionEvent e) {
		nombre.setText(Integer.toString(++valeur));
	}
 
	public static void main(String[] args) {
 
		  JFrame frame = new JFrame("A");
	        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
 
	        frame.setLayout(new FlowLayout());
 
	        frame.add(new Compteur("Moutons"));
	        frame.add(new Compteur("Loups"));
 
	        frame.pack();
	        frame.setVisible(true);
 
	}
 
}
Je pensais que le bouton agissait sur l'instance de la classe compteur désignée. Mais je pense surement mal. Si vous avez une idée, une suggestion, ou besoin que je sois plus précis, je suis à l'écoute.

Merci d'avance pour vos précisions.