bonjour,

dans une fonction j'ai une boucle qui me permet de créer 3 boutons et leur ActionListener. Je voudrais passer en paramètre à la fonction appelée lors du clic sur le bouton le contenu de la variable de boucle :

Code java : 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
 
        JButton btn[]= new JButton[3];
int i;
 
for (i=0; i<3; i++)
{
    btn[i]=new JButton("Bouton " + i);
    btn[i].addActionListener(new ActionListener()
    {
 
        @Override
        public void actionPerformed(ActionEvent e)
        {
            System.out.println(i);
        }
    });
}

Malheureusement au moment de la compilation j'ai cette erreur au niveau du println() :
error: local variable i is accessed from within inner class; needs to be declared final
System.out.println("bouton n°" + i);
Si je déclare i en final int mon erreur se trouve au niveau du for


D'où ma question : comment je peux passer le contenu de i ?