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 :

Problème de Timer


Sujet :

AWT/Swing Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut Problème de Timer
    Salut,

    J'ai développé une IHM qui gère notamment l'affichage de l'horloge via un Timer...
    Le hic, sur mon portable, pas de problème pour l'affichage de l'heure et le reste.
    Mais quand j'installe le tout sur un nano Pc, les secondes s'incrémentent de 2 en 2 et là
    j'ai d'abord pensé à un problème de config puis un problème au niveau SE puis envisager de créer un thread sur mesure !

    Qu'en pensez-vous ?

    Merci

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Montre-nous le code, pour qu'on puisse voir éventuellement ce qui pourrait expliquer le problème. Quel type de Timer utilises-tu (java.util ?, javax.swing ?) ? Que fait le timer ? Y a-t-il d'éventuelles variables accédées par plusieurs threads (Timer/EDT) qui ne seraient pas volatiles, par exemple ? Comment rafraichis-tu l'UI ? Est-ce une horloge graphique ou texte ? Le code source des parties timer et affichage pourrait nous donner des réponses à ces questions...
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Merci pour la rapide réponse, tu dors pas la nuit

    Pour te répondre, il n'y a rien de bien sorcié, j'ai fait un copier coller ici :
    http://www.fobec.com/java/1023/affic...vec-timer.html

    Merci encore

    @+

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    ok, programme basique et a priori sans grosse erreur.

    Peux tu le convertir comme ceci et nous dire ce que cela donne sur le nano pc?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
            javax.swing.Timer t = new javax.swing.Timer(100, new ClockListener());
        }
     
        /**
         * Evenement Timer, afficher l'heure
         */
        class ClockListener implements ActionListener {
            public void actionPerformed(ActionEvent e) {
                SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss.SSS");
                jtextTime.setText(df.format(Calendar.getInstance().getTime()));
            }
        }
    Sur ton pc ça devrais défiler plus vite (10 images par seconde), mais je soupçonne le nano-pc avec java d'être juste trop lent pour afficher un texte taille 48. De quel type de nano-pc parle-t-on?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Salut,

    ça s'incrémente toujours de 2 en 2 avec l'affichage des centièmes comme tu l'as souhaité mais uniquement toutes les 2 secondes !

    ++

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Et sur ton propre PC ca affiche bien un défilemment continu à 10 images par secondes?
    Et tu n'a toujours pas précisé le modèle de ton nano-pc

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Salut et merci encore,

    sur mon Pc, pas de souci d'incrément par 2 sur les secondes !
    le nano Pc est un Zotac mais je ne pense pas à un souci matériel mais plutôt au niveau du SE (W7) ou du programme !!!

    Amicalement

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Salut,

    Je crois que c'est dans le rafraichissements du composant qui contient l'heure !
    même avec un thread, le comportement est le même !
    Alors que si j'affiche la même heure sur le flux de sortie, l'heure est bonne et s'incrémente correctement !

    Comment on rafraichit ce JTextfield correctement parce que j'ai essayé plusieurs chose sans succès ?

    Merci

  9. #9
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Si tu réduit la taille de ton panel à 15pt plutôt que 48, ça va mieux?

    Sinon, tu as l'option du

    textfield.repaint()

    ou si ça ne marche toujours pas


    textfield.paintImlmediatly(area)

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Salut

    De mieux en mieux, j'insère un message défilant dans mon interface graphique, je gère les 2 composants (horloge + message) dans le même timer !

    quand je désactive (met entre commentaire) l'affichage de l'horloge, mon message défilant se comporte normalement à la bonne vitesse voulu !

    quand je ré-active, même mon message défilant va à la même vitesse que l'horloge !!!

    NB : même résultat en inversant les 2 instructions !

    @+

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Re

    J'ai tenté repaint & co : rien à faire !

    je garde bon espoir quand même.

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    La taille aussi n'y change rien !

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    J'ai bien compris tes messages précédent, si tu ajoute un System.out.println() dans ton timer, les println vont à la bonne vitesse, tu as juste un retard entre l'affichage du texte dans la console et celui dans ton interface graphique?

    Tu pourrais donner les deux codes, celui qui "marche" sans l'horloge et celui qui déconne avec l'horloge?

    Aussi, tu n'es pas en remote desktop ou quelque chose du genre pour ton affichage?

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    Le Nano n'est pas connecté (clé usb indispensable pour recopier les codes sources) donc je te fais un topo approximatif de ce qu'il contient (patiente un peu)

    c'est quoi le remote desktop pour l'affichage ?

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    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
    public void slimTimer(){		
    		 javax.swing.Timer t = new javax.swing.Timer(500, new ClockListener());
    		 t.start();
    	}
    	class ClockListener implements ActionListener {
    	        public void actionPerformed(ActionEvent e) {
    	            SimpleDateFormat df = new SimpleDateFormat("HH:mm:ss");
    	            String time = df.format(Calendar.getInstance().getTime());	            	            
    	            slimWindow.setClock(time);
    	            //slimWindow.displayMessage();
    	            if(time.equalsIgnoreCase("00:00:00")){
    	            	if(slimDataBase.existOccurence())		slimWindow.setWindows(slimDataBase.getCurrentOccurence());
    	            }	            
    	        }
    	}

  16. #16
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    en gros tu as branché un écran et un clavier directement sur le nano? Ou tu passe par un affichage déporté, via le réseau?

  17. #17
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Et si tu remplaces l'affichage par un simple compteur, tu observes le même phénomène ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    clavier + souri uniquement

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    si au même moment, j'affiche l'heure sur le flux de sortie : RAS

    je sais pas ce qui se passe dans le setClock, derrière c'est juste un setText !

  20. #20
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 42
    Points : 24
    Points
    24
    Par défaut
    J'ai tout essayé, là je ne vois vraiment pas, un collègue m'a parlé de repertoire svn ou git mais je ne sais pas de quoi il parle !

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Toujours un problème avec Timer
    Par adidas40 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/10/2006, 11h04
  2. Problème de Timer
    Par nikus_knx dans le forum MFC
    Réponses: 7
    Dernier message: 18/05/2006, 14h27
  3. Problème de Timer
    Par hammag dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 25/04/2006, 17h52
  4. [VC++ - MFC] Problème de Timer
    Par Alice9 dans le forum MFC
    Réponses: 4
    Dernier message: 08/02/2006, 13h51
  5. [VB6] Problème contrôle Timer et boucle For-Next ...
    Par Stéphane BEHMENBURG dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 01/12/2005, 17h36

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