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 :

Rafraichissement Label ou Panel ?


Sujet :

AWT/Swing Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de titor
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 78
    Par défaut Rafraichissement Label ou Panel ?
    Salut à tous.
    Voilà je vous écris car j'ai fait une petite fenêter toute bête en java avec swing.
    Ma JFrame contient :
    -Une menuBar avec menu et menuitem
    -deux bouton
    -un label qui est l'heure.
    Voila ce que je veux faire est simple, voir l'heure défiler tout simplement.
    En gros je clique sur un bouton, et l'heure s'affiche et continue à défiler, seulement c'est la que ça coince.
    J'arrive juste à cliquer et à afficher l'heure une fois, je dois recliquer pour actualiser le label (ce qui est logique d'ailleursvu mon code )
    So here is the 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
    51
    52
    53
    54
    55
    private JPanel getContainer()
        {
            layout = new FlowLayout();
            layout.setAlignment(FlowLayout.LEADING);
     
            pan  = new JPanel();
            pan.setLayout(layout);
     
            menuBar = new JMenuBar();
     
            menu = new JMenu("File");
     
            quit = new JMenuItem("Quit");
            quit.addActionListener(this);
            menu.add(quit);
     
            quitt= new JButton("Quit");
            quitt.setPreferredSize(new Dimension(75, 20));
            quitt.addActionListener(this);
            pan.add(quitt);
     
            refresh = new JButton("Refresh");
            refresh.setPreferredSize(new Dimension(75, 20));
            refresh.addActionListener(this);
            pan.add(refresh);
     
            menuBar.add(menu);
            this.setJMenuBar(menuBar);
     
            label = new JLabel();
     
            pan.add(label);
     
     
            pan.revalidate();
            return pan;
     
        }
     
        public void actionPerformed(ActionEvent e)
        {
            //boolean test = true;
     
            calendar = (GregorianCalendar) GregorianCalendar.getInstance();
            time = calendar.getTime();
            SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
            String formattedDate = formatter.format(time);
            label.updateUI();
     
            label.setText(formattedDate);
            if(e.getSource() == quit || e.getSource() == quitt)
            {
                System.exit(0);
            }
        }
    J'ai mis ce qui me semblait le plus intéressant, là où il peut y avoir des erreurs.
    Voilà si quelqu'un a une solution merci d'avance

  2. #2
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Par défaut
    Salut,

    Je n'ai pas lu en détaille ton code néanmoins, il me semble que si tu veux que l'affichage soit rafraichie régulirerement il te faut faire un Thread. Dans sa fonction run tu lui fait rafraichir ton label toutes les secondes (par exemple).

    j'espère que ça va t'aider.

  3. #3
    Membre confirmé Avatar de titor
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 78
    Par défaut
    Euh peut-être mais étant donné que je ne sais pas faire de Thread pourrait tu dévelopepr ta réponse ?
    Merci encore je vais voir ce que je peut trouver sur le sujet

  4. #4
    Membre éclairé
    Inscrit en
    Décembre 2005
    Messages
    251
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 251
    Par défaut
    Salut,

    A priori tu as trouvé....
    Si non un thread juste pour faire court, c'est un programme qui execute le corp de sa méthode run par morceau. Ce qui donne l'illusion que des programmes tournent en parallèles.
    Il y a un méthode intéressante qui la méthode sleep qui permet notamment de faire un timer.

    Bonne journée

  5. #5
    Expert confirmé
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Par défaut
    Dans le cas présent je pencherais plus pour un timer Swing (javax.swing.Timer)

  6. #6
    Membre confirmé Avatar de titor
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations forums :
    Inscription : Octobre 2005
    Messages : 78
    Par défaut
    Salut, je vais voir du côté de ta solution, sinon j'ai utilisé un Thread avec la classe de java.
    J'ai pas le code sous la main, la je suis à l'IUT mais je le poste ce soir comme ça vous pourrez me dire si la méthode est bien codée.
    Voilà je regarde aussi le javax.swing.Timer

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

Discussions similaires

  1. Databinding rafraichissement labels
    Par nemo67 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 04/05/2013, 12h47
  2. Rafraichissement d'un panel
    Par Boss38400 dans le forum Débuter
    Réponses: 1
    Dernier message: 16/01/2011, 18h25
  3. Réponses: 0
    Dernier message: 06/01/2011, 15h19
  4. rafraichissement d'un panel
    Par gentil dans le forum Composants
    Réponses: 1
    Dernier message: 15/12/2008, 16h46
  5. Probleme de rafraichissement d'un panel de plusieurs compo.
    Par lilou77 dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 08/12/2005, 13h51

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