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 :

Rafraichir un JLabel


Sujet :

Agents de placement/Fenêtres Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    regseb
    Invité(e)
    Par défaut Rafraichir un JLabel
    Bonjour,

    Je réalise une application qui se connecte à un serveur. Et durant la connexion, je souhaite afficher un message dans un JLabel. Quand l'utilisateur clique sur le bouton, je rend le label visible et l'actualise. Ensuite je me connecte au serveur. Mais le label n'est visible qu'après la connexion.

    Voici le code de ma fenêtre :
    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
    import javax.swing.*;
    import java.awt.event.*;
     
    public class MainFrame extends    JFrame
                           implements ActionListener {
     
        public MainFrame () {
            super ();
            setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
            setSize (500, 500);
     
            final JPanel panel = new JPanel ();
     
            m_statut = new JLabel ("Connexion en cours ...");
            m_statut.setVisible (false);
            panel.add (m_statut);
     
            final JButton valider = new JButton ("Valider");
            valider.addActionListener (this);
            panel.add (valider);
     
            getContentPane ().add (panel);
     
            setVisible (true);
        } // MainFrame ()
     
        public void actionPerformed (final ActionEvent p_event) {
            m_statut.setVisible (true);
     
            repaint (); ////////////////////////////////////////////////////
            getContentPane ().repaint (); //////////////////////////////////
            m_statut.updateUI (); //////////////////////////////////////////
            m_statut.repaint (); ///////////////////////////////////////////
            m_statut.revalidate (); ////////////////////////////////////////
     
            try {
                Thread.sleep (2000); // Simulation de la connexion.
            }
            catch (InterruptedException p_exc) { p_exc.printStackTrace (); }
        } // actionPerformed ()
     
        private JLabel m_statut;
     
        public static void main (String[] args) {
            new MainFrame ();
        } // main ()
     
    } // MainFrame
    Auriez-vous d'autres méthodes pour actualiser le JLabel ?

    Merci d'avance,
    regseb

  2. #2
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Par défaut
    Erreur classique : tu bloques l'EDT, le thread unique qui gère tout l'affichage.
    Tout le traitement doit se faire dans un thread à part.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  3. #3
    regseb
    Invité(e)
    Par défaut
    Citation Envoyé par dinobogan Voir le message
    Erreur classique : tu bloques l'EDT, le thread unique qui gère tout l'affichage.
    Tout le traitement doit se faire dans un thread à part.
    Je ne comprends pas. La méthode repaint () ne rafraichit pas l'interface ? Dans ce cas là, elle sert à quoi ?
    Parce que durant le sleep, ça m'arrange que l'interface soit geler.

    PS :
    Ça veux dire quoi EDT ?
    La méthode actionPerformed est exécuté dans le thread qui gère l'interface ?

    regseb
    Dernière modification par regseb ; 20/11/2008 à 17h37.

Discussions similaires

  1. rafraichir un jlabel
    Par dark0502 dans le forum Débuter
    Réponses: 2
    Dernier message: 09/02/2009, 10h45
  2. rafraichir affichage JLabel
    Par Raumfahrerralf dans le forum AWT/Swing
    Réponses: 5
    Dernier message: 22/06/2007, 00h39
  3. [Look and feel] Texte des JLabels en gras
    Par aliasjcdenton dans le forum AWT/Swing
    Réponses: 11
    Dernier message: 26/01/2006, 12h49
  4. [Débutant][JLabel] Rafraichir
    Par maxxou dans le forum Composants
    Réponses: 5
    Dernier message: 07/11/2004, 00h48
  5. Comment rafraichir le swf ?
    Par oazar dans le forum Flash
    Réponses: 3
    Dernier message: 17/10/2003, 14h08

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