IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Agents de placement/Fenêtres Java Discussion :

Actualiser un tableau de JLabel.


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 25
    Par défaut Actualiser un tableau de JLabel.
    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.

  2. #2
    Membre expérimenté Avatar de welcome_59
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2007
    Messages
    203
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 203
    Par défaut
    Ton problème vient probablement du fait que tu n'affiches pas tes labels (ceux du tableau). En fait il se passe ce que tu souhaites, mais tu ne le vois tout simplement pas.
    Essaie quelquechose comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        for (int i = 0; i< lbl.length; i++)
        {
            lbl[i] = new JLabel();                    
            lbl[i].setText("1");
            pan.add(lbl[i]);
            System.out.print(lbl[i].getText());                    
         }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 25
    Par défaut
    C'est parfait ca marche a un petit détail près.

    Voici le code fonctionnel:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    btn.addActionListener(new AbstractAction() {
    @Override
    public void actionPerformed(ActionEvent e) {  
       pan.removeAll();
       for (int i = 0; i< lbl.length; i++)
       {
         lbl[i] = new JLabel();                    
         lbl[i].setText("1");
         pan.add(lbl[i]);                  
       }
       pan.revalidate();
       }
    });
    Sinon les valeurs sont ajoutées à la suite.

    J'avais déjà essayé cette méthode mais dans le code de mon projet (ce que je vous ai donné c'est juste la partie qui me pose problème) j'ai un conteneur qui est composé de 3 panels et je faisais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    JPanel conteneur
    JPanel nord
    JPanel centre //contient le tableau de JLabel
    JPanel sud
     
    conteneur.removeAll();
    conteneur.add(nord);
    conteneur.add(centre);
    conteneur.add(sud);
    conteneur.revalidate();
    Alors que je devais faire un "removeAll" juste sur le panel qui contient le tableau.

    Merci beaucoup en tout cas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 39
    Dernier message: 22/04/2009, 16h52
  2. Réponses: 13
    Dernier message: 30/03/2009, 15h53
  3. [E-07] Actualisation automatique tableau croisé dynamique.
    Par Tibou(c) dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 28/03/2009, 14h24
  4. Tableau de JLabels et évenements
    Par Boghs dans le forum Composants
    Réponses: 2
    Dernier message: 07/06/2008, 11h10
  5. [jTable] Actualiser un tableau
    Par oOoOuuhmAn dans le forum Composants
    Réponses: 7
    Dernier message: 14/03/2006, 18h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo