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

Composants Java Discussion :

Réactulisation d'un Jlabel


Sujet :

Composants Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 14
    Par défaut Réactulisation d'un Jlabel
    Bonjour,

    voila j'ai fait une fonction qui efface le texte d'un label apres un temps imparti( ici 5000 ms).
    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
     
    private void Switchlbl(JLabel label)
    	{
    		long t, t1=0;
    		t = System.currentTimeMillis();
    		while (t1<t+5000)
    	    {
    	       	t1=System.currentTimeMillis();
    	     }
     
     
    			label.setText("");
     
     
    	}
    Le seul probleme quand j'execute cette fonction, le texte deja placé dans le label ne s'affiche pas du tout. Le programe ne reactualise pas le champs.
    Si je place des caracteres dans label.setText("azerty"); c'est ces caracteres qui s'affiche et je ne vois toujours pas le précedent contenu.
    Avez vous une idéé pour faire marcher ce truc?

    Merci
    JeanMoul

  2. #2
    Membre Expert Avatar de herve91
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    1 282
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 282
    Par défaut re: [Stratégie] Réactulisation d'un Jlabel
    Bonjour,

    ton code fait une attente active c-à-d. que le thread qui exécute la méthode Switchlbl() (en passant le 1er caractère d'un nom de méthode est une minuscule) passe son temps à exécuter la boucle d'attente des 5s. Je pense que vu le comportement que tu décris, tu exécutes ce code dans le thread Event Dispatch Thread, donc ton IHM ne se rafraîchit pas. Il faut faire autrement, en utilisant un javax.swing.Timer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    private void switchlbl(final JLabel label) {
      Timer t = new Timer(5000,
                new ActionListener() {
                  public void actionPerformed(ActionEvent ev) {
                     label.setText("");
                  }
                });
      t.setRepeats(false);
      t.start();
    }

  3. #3
    Membre averti
    Inscrit en
    Juin 2005
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 14
    Par défaut
    Merci beaucoup ca marche !

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

Discussions similaires

  1. [Look and feel] Texte des JLabels en gras
    Par aliasjcdenton dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 26/01/2006, 11h49
  2. Prob de taille avec Jlabel
    Par Stef784ever dans le forum Composants
    Réponses: 6
    Dernier message: 03/08/2004, 13h34
  3. [thread] Rafraichissement JLabel
    Par astyanax34 dans le forum Composants
    Réponses: 14
    Dernier message: 24/06/2004, 15h44
  4. [JLabel] Redimensionnement auto non désiré
    Par SamRay1024 dans le forum Agents de placement/Fenêtres
    Réponses: 11
    Dernier message: 21/05/2004, 18h13
  5. [JLabel][HTML]pourquoi mes images s'affiche pas?!
    Par La Truffe dans le forum Composants
    Réponses: 8
    Dernier message: 29/04/2004, 11h23

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