Bonjour à tous,

Je voudrais savoir comment faire pour pouvoir actualiser un tableau contenant des JLabel. Voici 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
 
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import javax.swing.AbstractAction;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
 
public class test2 {  
        public static void main(String[] args){
            final JLabel[] lbl = new JLabel[5];
            final JButton btn = new JButton("++");
            final JPanel conteneur = new JPanel();
            final JPanel pan = new JPanel();
            JFrame fen = new JFrame();
            final JLabel txt = new JLabel("Test");
 
 
            fen.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            fen.setLocationRelativeTo(null);
            fen.setSize(100, 100);
            fen.setVisible(true);
 
            pan.setLayout(new GridLayout()); 
 
            for(JLabel l:lbl){
                l = new JLabel("0");
                pan.add(l);
            }
 
            btn.addActionListener(new AbstractAction() {
            @Override
            public void actionPerformed(ActionEvent e) {   
                for (int i = 0; i< lbl.length; i++)
                {
                    lbl[i] = new JLabel();                    
                    lbl[i].setText("1");
                    System.out.print(lbl[i].getText());                    
                }
                txt.setText("test2");
                }
            });
 
            conteneur.add(txt);        
            conteneur.add(pan);
            conteneur.add(btn);            
            fen.setContentPane(conteneur);            
        }
}
"setText" permet normalement d'actualiser un JLabel (cela marche très bien sur la variable "txt") mais elle n'a aucun effet sur les JLabel du tabelau.

J'ai essayé plusieurs chose:
- "removeAll" et "revalidate"
- "updateUI"
- "repaint"
- ...
aucune de ces méthodes n'a fonctionnées (ou je les ai mal utilisées).

Merci de votre aide.