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

AWT/Swing Java Discussion :

rafraichir affichage JLabel


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 31
    Par défaut rafraichir affichage JLabel
    Bonjour,
    je créé une interface graphique à mon programme.
    Les différents éléments sont créés pendant une première phase d'initialisation, du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    private static JLabel getPlayer_i_Stack_Label(int i) {
    if (Player_i_Stack_Label[i]==null){
    Player_i_Stack_Label[i] = new JLabel("---");
    }
    ...
    ensuite en cours d'éxecution, j'accède et je modifie certains de ces éléments, avec un méthode du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public static boolean SetPlayerStackValue(int i,int newstackvalue)
    {
    ...
    Player_i_Stack_Label[i].setText("blablabla");
    }
    Ce qui se passe c'est que quand j'appel SetPlayerStackValue pour changer le contenu text de mon Player_i_Stack_Label, l'affichage m'affiche une superposition des deux dernier textes du Label. Quand je redimensionne la fenêtre l'affichage devient correct.
    Après m'être balladé sur des forums, j'ai essayé de mettre des repaint() et/ou des revalidate() appelés sur mon label et le conteneur de mon label, mais sans succès...

    Comment résoudre ce problème ?

  2. #2
    Membre très actif
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    321
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 321
    Par défaut
    Essaie de faire un repaint sur ton composant

  3. #3
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 31
    Par défaut
    Bon, ce que j'ai fait et qui semble marcher, c'est de remplacer mes repaint() par l'appel à ma méthode RepaintAll().
    RepaintAll appelle repaint sur tout mes éléments et ensuite fait un :
    Thread.sleep(20);

    j'imagine que le sleep doit déclencher effectivement les repaint() (?)

    J'ai l'impression de chasser les mouches au marteau piqueur, il y a sûrement un meilleur moyen, mais bon, en attendant...

  4. #4
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Quelle action utilisateur déclenche la modification des labels ?

  5. #5
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 31
    Par défaut
    ce n'est pas une action de l'utilisateur qui déclenche directement la modification du label.
    (évidement l'utilisateur est à l'origine d'une action qui déclenche plein de trucs et au milieu le Label est modifié, ce que je veux dire c'est que au moment où l'utilisateur fait l'action on ne sait pas quels labels vont être modifiés ni comment, c'est au cours de l'éxecution de tâches plus complexes du programme que cela apparait.)

  6. #6
    Membre Expert
    Avatar de gifffftane
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 354
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 2 354
    Par défaut
    Est-ce que, au milieu de ces modifications, tu fais gaffe à toujours te brancher sur le dispatching thread pour tes modifs swing ?

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/02/2009, 18h21
  2. rafraichir un jlabel
    Par dark0502 dans le forum Débuter
    Réponses: 2
    Dernier message: 09/02/2009, 09h45
  3. Rafraichir un JLabel
    Par regseb dans le forum Agents de placement/Fenêtres
    Réponses: 3
    Dernier message: 20/11/2008, 17h20
  4. Problème affichage JLabel
    Par Vitaly dans le forum AWT/Swing
    Réponses: 6
    Dernier message: 21/08/2007, 00h48
  5. Rafraichir affichage pendant une fonction
    Par E.Bzz dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 07/02/2007, 12h01

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